elasticsearch 匹配发音相同单词的方案
友情關(guān)注:2021年底即將推出我們墨飛魚團(tuán)隊(duì)歷時(shí)大半年研發(fā)的靈感寫作平臺(tái),在墨飛魚這里希望能幫助更多人找到閱讀與寫作的樂趣, 敬請(qǐng)收藏了解,12月底見哦~
匹配拼寫不同但發(fā)音相同的單詞。像“郵件”和“男性”,我們可以在Elasticsearch中如何進(jìn)行這樣的匹配呢?
這就需要用到analysis-phonetic這個(gè)語音分析插件,可以使用插件管理器安裝此插件:
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該插件必須安裝在群集中的每個(gè)節(jié)點(diǎn)上,並且每個(gè)節(jié)點(diǎn)必須在安裝後重新啟動(dòng)。
index中設(shè)置phonetic分析器
phonetic令牌過濾器需要進(jìn)行如下設(shè)置::
-
encoder
使用哪個(gè)語音編碼器。接受metaphone(默認(rèn)), double_metaphone,soundex,refined_soundex,caverphone1, caverphone2,cologne,nysiis,koelnerphonetik,haasephonetik,beider_morsedaitch_mokotoff -
replace
原始令牌是否應(yīng)由phonetic令牌替換。接受true(默認(rèn))和false。不支持beider_morse編碼 。
index中的設(shè)置
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可能會(huì)因?yàn)樵己驼Z音分析器版本都在同一字段的令牌位置而導(dǎo)致意外行為。例如,模糊match 查詢的模糊性同義詞標(biāo)記推理不起作用。因此,使用單獨(dú)的字段進(jìn)行分析和而不進(jìn)行phonetic語音過濾是個(gè)明智的選擇。這樣的話,就可以針對(duì)具有不同的字段的搜索權(quán)重進(jìn)行提升或折衷計(jì)算(例如,僅對(duì)match的原始文本字段運(yùn)行模糊查詢,而不對(duì)該字段進(jìn)行phonetic模糊查詢)。
移除插件
可以使用以下命令刪除該插件:
sudo bin/elasticsearch-plugin remove analysis-phonetic在刪除插件之前,必須先停止該elasticsearch節(jié)點(diǎn)。
聲明:文章由作者本人的親歷及經(jīng)驗(yàn)總結(jié),屬個(gè)人原創(chuàng)文章,歡迎轉(zhuǎn)載并注明出處,個(gè)博原文的鏈接地址見:
https://tech.limuqiao.com/archives/39.html
總結(jié)
以上是生活随笔為你收集整理的elasticsearch 匹配发音相同单词的方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 说说你对<meta>标签的
- 下一篇: 单片机c语言fft函数,单片机ADC采样