Как вы знаете, используя where()
заявление после использования метода поиска numericFilter
, Я пытаюсь отфильтровать результаты поиска с помощью фильтрации строк.
Как я могу использовать Facet Filter в поисковой фразе?
Я рад ответить на мою собственную проблему. Прежде всего, действительно трудно найти какой-либо документ о Скауте Ларавела. Если вы хотите отфильтровать результаты поиска с помощью строковых параметров. Даже очень сложно найти ответ тоже. Я проверил всю библиотеку построчно. Наконец, результат заставил меня гордиться.
Если вы хотите отфильтровать свой результат с помощью строковых параметров, вам нужно спроектировать функцию обратного вызова для вашего search()
метод и введите ваш FacetFilters там. Просто предположим, что у вас есть Posts
модель, которую вы используете Algolia, и вы набрали enum category
колонка на нем. Вы можете отфильтровать результаты поиска в своем блоге с помощью кода ниже.
$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/