在我们的服务中,我们正在尝试将“nysii”语音算法的自定义移植到 Elasticsearch。
我们的算法执行这个名称转换:
给定一个“姓氏”和“名字”列表,例如“[Smith]”和“[John]”,采用第一个姓氏的“nysiis”语音编码器,并将其连接到第一个名字的小写首字母.
因此:
nysiis(Surnames[0]) + lower(Firstnames[0][0])
所以“John Smith”的结果将是“SNATHj”
我知道 ES 支持 nyyis 令牌过滤器https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-phonetic-token-filter.html
但我想知道实现自动执行上述转换的自定义分析器的最佳方法是什么。
注意:我想,如果需要,我们已经可以为 ES 提供一个简单的结构:
{"surname": "Smith", "initial_first_name": "j"}