#laravel #elasticsearch #elasticsearch-phonetic
#ларавель #эластичный поиск #elasticsearch-фонетический
Вопрос:
Я столкнулся с проблемой в эластичном поиске, заключающейся в том, что он не может выполнить поиск, если кто-то вводит неправильное написание. Я провел некоторые исследования и разработки в отношении Soundex. Теперь я столкнулся с проблемой реализации Soundex в эластичном поиске. Пожалуйста, помогите мне сделать это, я уже установил плагин фонетического анализа в elastic search, но как настроить плагин с помощью elastic search, который будет работать с результатами поиска.
'title' => [
'type' => 'text',
'analyzer' => $language . '_analyzer',
'index' => true,
'norms' => false,
'term_vector' => 'with_positions_offsets',
'fields' => [
'raw' => [
'type' => 'keyword',
'normalizer' => 'lowercase_normalizer',
'index' => true,
'norms' => false,
],
],
],
Ответ №1:
Вам необходимо создать пользовательский анализатор с использованием фильтра фонетических маркеров и применить этот пользовательский анализатор к вашему текстовому полю.
В качестве альтернативы, если вы хотите выполнить поиск с опечатками, вы можете использовать нечеткие совпадения.
Комментарии:
1. Я уже провел исследования и разработки по этому вопросу, но не могу понять, где мне нужно добавить этот анализатор в индекс или где-то еще.
2. Да, настройки анализатора зависят от индекса, вы должны настроить его при создании индекса (или в шаблоне индекса, если вы их используете).
3. Я обновил блок кода, в котором есть существующая конфигурация. Не могли бы вы помочь мне, как я могу добавить сюда пользовательский анализатор
4. Да, вы должны настроить анализатор при создании индекса. По ссылке выше есть несколько фрагментов.
5. Спасибо, @ilvar. Теперь проблема решена. Еще раз спасибо.