如何使用 Algolia 搜索仅索引模型的相关字段?
How to index only relevant fields of my model using Algolia search?
我正在将 Algolia 搜索合并到我的一个应用程序中,并将 运行 合并到 10 KB 的文档大小限制中。我只想索引模型中的某些字段而不是整个字段。我正在使用 mongo,它嵌入了我不关心的相关文档。
我按照以下说明操作:https://laravel.com/docs/5.3/scout
现在,当我为数据编制索引时,我收到警告,在我的 2000 份左右的文档中,大约有 100 份超过了 10 KB。
如何告诉 Algolia 我只想索引某些字段并忽略其他一些数据,如关系或嵌入文档?
您可以在要添加可搜索特征的 class 中使用 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;
}
这就是你要找的吗?
我正在将 Algolia 搜索合并到我的一个应用程序中,并将 运行 合并到 10 KB 的文档大小限制中。我只想索引模型中的某些字段而不是整个字段。我正在使用 mongo,它嵌入了我不关心的相关文档。
我按照以下说明操作:https://laravel.com/docs/5.3/scout
现在,当我为数据编制索引时,我收到警告,在我的 2000 份左右的文档中,大约有 100 份超过了 10 KB。
如何告诉 Algolia 我只想索引某些字段并忽略其他一些数据,如关系或嵌入文档?
您可以在要添加可搜索特征的 class 中使用 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;
}
这就是你要找的吗?