Пользовательский фонетический анализ в Elasticsearch
В нашем сервисе мы пытаемся перенести настройку фонетического алгоритма nysiis в Elasticsearch.
Наш алгоритм выполняет это преобразование имени:
учитывая список "Фамилий" и "Имен", таких как "[Смит]" и "[Джон]", берет фонетический кодировщик "nysiis" по первой фамилии и объединяет его в нижний регистр, первый инициал первого имени,
Следовательно:
nysiis(Surnames[0]) + lower(Firstnames[0][0])
Таким образом, результат с "Джоном Смитом" будет "SNATHj"
Я знаю, что ES поддерживает фильтр токенов nyyis https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-phonetic-token-filter.html
но мне интересно, каков наилучший способ реализовать пользовательский анализатор, который автоматически выполняет вышеуказанное преобразование.
Примечание. Думаю, если потребуется, мы уже можем предоставить ES с простой структурой:
{"surname": "Smith", "initial_first_name": "j"}