如何使用Algolia搜索仅索引我的模型的相关字段?

问题描述:

我将Algolia搜索合并到我的一个应用程序中并运行到10 KB文档大小限制。我只想索引模型中的某些字段,而不是整个事物。我使用的是mongo,它嵌入了我不关心的嵌入和相关文档。如何使用Algolia搜索仅索引我的模型的相关字段?

我遵循的指示:https://laravel.com/docs/5.3/scout

现在,当我索引的数据,我得到的警告,约有100我的2000左右的文件是在10 KB大小。

如何告诉Algolia我只想索引某些字段并忽略一些其他数据,如关系或嵌入式文档?

您可以在您添加可搜索特征的课程中使用Laravel的toSearchableArray。在这方面你只包括你实际想要搜索的部分。

public function toSearchableArray() { 
    $array = $this->toArray(); 
    $array = [ 
    'id' => $this->id, 
    'name' => $this->name, 
    'description' => $this->description, 
    'price' => (int)$this->price, 
    'likes' => (int)$this->likes, 
    'slug' => $this->slug 
    ]; 
    return $array; 
} 

这是你在找什么?

+2

请注意,数组必须在最后返回 –