在我们的服务中,我们试图将“nysiis”语音算法的定制移植到Elasticsearch .

我们的算法执行此名称转换:

给出一个“Surnames”和“Firstnames”列表,例如“[Smith]”和“[John]”,在第一个姓氏上取“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"}