#laravel #search #algolia #laravel-scout
Вопрос:
Я использую Algolia с Laravel для поиска в моей системе. У меня есть два поля ввода:
- ‘Где ввод’ основной поиск по всему
- «Какие входные данные «используют» Фильтры лица » для поиска слов или фраз
Моя проблема в том, что второй ввод с помощью «Фильтра фасетов» работает только с точным совпадением.
Существует альтернативный способ поиска » %КАК%» на втором входе?
Это мой код:
$shops = Shop::search('', function ($algolia, $query, $options) use ($lat, $lng, $radius) //query is empty for enable AroundLatLng
{
$custom = [
'aroundLatLng' => $lat.','.$lng,
'aroundRadius' => $radius * 1000,
'getRankingInfo' => true
];
$options = array_merge($options, $custom);
$algolia_search = $algolia->search($query, $options);
$results = collect($algolia_search);
return $algolia_search;
})->with([
'filters' => 'status = 1',
'facetFilters' => [
["name:$this->searchByWords" , "services:$this->searchByWords"] //theese works only with perfect match!
],
'typoTolerance' => true, //this works only with main query
'minWordSizefor1Typo' => 4, //this works only with main query
'minWordSizefor2Typos' => 6, //this works only with main query
'ignorePlurals' => true, //this works only with main query
'removeStopWords' => true //this works only with main query
])->paginate(10)
->appends('query', null);
return view('frontend.pages.shops.results', ['shops' => $shops]);
Спасибо!