Laravel elastic search реализует soundex

#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. Теперь проблема решена. Еще раз спасибо.