如何使用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;
}
这是你在找什么?
请注意,数组必须在最后返回 –