友情关注:2021年底即将推出我们墨飞鱼团队历时大半年研发的灵感写作平台,在墨飞鱼这里希望能帮助更多人找到阅读与写作的乐趣, 敬请收藏了解,12月底见哦~
匹配拼写不同但发音相同的单词。像“邮件”和“男性”,我们可以在Elasticsearch中如何进行这样的匹配呢?
这就需要用到analysis-phonetic这个语音分析插件,可以使用插件管理器安裝此插件:
ES中安装analysis-phonetic插件
[root@ecs-bs bin]# ./elasticsearch-plugin install analysis-phonetic
future versions of Elasticsearch will require Java 11; your Java version from [/A_Install/java/jdk1.8.0_171/jre] does not meet this requirement
-> Downloading analysis-phonetic from elastic
[=================================================] 100%
-> Installed analysis-phonetic
該插件必須安裝在群集中的每個節點上,並且每個節點必須在安裝後重新啟動。
index中设置phonetic分析器
phonetic令牌过滤器需要进行如下设置::
-
encoder
使用哪个语音编码器。接受metaphone(默认), double_metaphone,soundex,refined_soundex,caverphone1, caverphone2,cologne,nysiis,koelnerphonetik,haasephonetik,beider_morsedaitch_mokotoff -
replace
原始令牌是否应由phonetic令牌替换。接受true(默认)和false。不支持beider_morse编码 。
index中的设置
PUT phonetic_sample
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_metaphone"
]
}
},
"filter": {
"my_metaphone": {
"type": "phonetic",
"encoder": "metaphone",
"replace": false
}
}
}
}
}
}
注意,“replace”: false可能会因为原始和语音分析器版本都在同一字段的令牌位置而导致意外行为。例如,模糊match 查询的模糊性同义词标记推理不起作用。因此,使用单独的字段进行分析和而不进行phonetic语音过滤是个明智的选择。这样的话,就可以针对具有不同的字段的搜索权重进行提升或折衷计算(例如,仅对match的原始文本字段运行模糊查询,而不对该字段进行phonetic模糊查询)。
移除插件
可以使用以下命令删除该插件:
sudo bin/elasticsearch-plugin remove analysis-phonetic
在删除插件之前,必须先停止该elasticsearch节点。
声明:文章由作者本人的亲历及经验总结,属个人原创文章,欢迎转载并注明出处,个博原文的链接地址见:
https://tech.limuqiao.com/archives/39.html
本文介绍了如何利用Elasticsearch的analysis-phonetic插件进行发音相似单词的匹配,通过设置encoder和replace参数来配置语音分析器。在安装插件后,需要在每个节点上安装并重启,然后在index中设置phonetic分析器。文章提醒,使用'replace': false可能导致意外行为,并建议使用独立字段进行分析。此外,还提供了插件的卸载方法。
4739

被折叠的 条评论
为什么被折叠?



