Laravel Scout Search с помощью FacetFilters?

Как вы знаете, используя where() заявление после использования метода поиска numericFilter, Я пытаюсь отфильтровать результаты поиска с помощью фильтрации строк.

Как я могу использовать Facet Filter в поисковой фразе?

4

Решение

Я рад ответить на мою собственную проблему. Прежде всего, действительно трудно найти какой-либо документ о Скауте Ларавела. Если вы хотите отфильтровать результаты поиска с помощью строковых параметров. Даже очень сложно найти ответ тоже. Я проверил всю библиотеку построчно. Наконец, результат заставил меня гордиться.

Если вы хотите отфильтровать свой результат с помощью строковых параметров, вам нужно спроектировать функцию обратного вызова для вашего 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));
});
9

Другие решения

Согласно документации algolia вы можете изменить параметры поиска следующим образом:

$results = Product::search($q)->with(
[
'facets' => ['*'],
'facetFilters' => [$facetFilters],
]
)->paginate(24);

https://www.algolia.com/doc/framework-integration/laravel/searching/server-side-search/

0

По вопросам рекламы [email protected]