Laravel 使用 FacetFilters 进行 Scout 搜索?
Laravel Scout Search with FacetFilters?
如您所知,在搜索方法使用 numericFilter
之后使用 where()
语句。我正在尝试使用字符串过滤来过滤我的搜索结果。
如何在搜索语句中使用 Facet Filter?
很高兴回答我自己的问题。首先,很难找到任何关于 Laravel Scout 的文档。如果你想用字符串参数过滤你的搜索结果。即使真的很难找到答案。我按line.Finally检查了整个库行,结果让我感到自豪。
如果你想用字符串参数过滤你的结果,你需要为你的 search()
方法设计回调函数,并在 there.Simply 上注入你的 FacetFilters,假设您有 Posts
模型,您正在使用 Algolia,并且您有枚举类型的 category
列。您可以使用以下代码过滤您的博客 post 搜索结果。
$post = Post::search($query, function ($algolia, $query, $options) use ($category){
$new_options = [];
if (!is_null($type)) {
$new_options = ["facetFilters"=>"category_name:".$category];
}
return $algolia->search($query, array_merge($options,$new_options));
});
根据 algolia 文档,您可以像这样修改搜索参数:
$results = Product::search($q)->with(
[
'facets' => ['*'],
'facetFilters' => [$facetFilters],
]
)->paginate(24);
https://www.algolia.com/doc/framework-integration/laravel/searching/server-side-search/
如您所知,在搜索方法使用 numericFilter
之后使用 where()
语句。我正在尝试使用字符串过滤来过滤我的搜索结果。
如何在搜索语句中使用 Facet Filter?
很高兴回答我自己的问题。首先,很难找到任何关于 Laravel Scout 的文档。如果你想用字符串参数过滤你的搜索结果。即使真的很难找到答案。我按line.Finally检查了整个库行,结果让我感到自豪。
如果你想用字符串参数过滤你的结果,你需要为你的 search()
方法设计回调函数,并在 there.Simply 上注入你的 FacetFilters,假设您有 Posts
模型,您正在使用 Algolia,并且您有枚举类型的 category
列。您可以使用以下代码过滤您的博客 post 搜索结果。
$post = Post::search($query, function ($algolia, $query, $options) use ($category){
$new_options = [];
if (!is_null($type)) {
$new_options = ["facetFilters"=>"category_name:".$category];
}
return $algolia->search($query, array_merge($options,$new_options));
});
根据 algolia 文档,您可以像这样修改搜索参数:
$results = Product::search($q)->with(
[
'facets' => ['*'],
'facetFilters' => [$facetFilters],
]
)->paginate(24);
https://www.algolia.com/doc/framework-integration/laravel/searching/server-side-search/