es自建搜索词库_【ES从入门到实战】二十三、全文检索-ElasticSearch-分词-自定义扩展词库...
接第22節(jié)
3)、自定義詞庫
ik 分詞器默認(rèn)的分詞并不能滿足我們的需求,對于一些新的網(wǎng)絡(luò)用語,ik 分詞器就會無法準(zhǔn)確的進行分詞識別,比如:
POST _analyze
{
"analyzer": "ik_max_word",
"text": "喬碧蘿殿下"
}
分詞之后顯示為如下,可以看到 ik 分詞器無法識別出“喬碧蘿”是一個人名:
在這里插入圖片描述
所以,需要進行自定義拓展詞庫。
要自定義拓展詞庫,可以修改 ik 分詞器的配置文件,指定一個遠(yuǎn)程詞庫,讓 ik 分詞器向遠(yuǎn)程發(fā)送請求,要到一些最新的單詞,這樣最新的單詞就會作為最新的詞源進行分解。
自定義詞庫有兩種方式實現(xiàn):
自己實現(xiàn)一個服務(wù),處理 ik 分詞器的請求,讓 ik 分詞器的給自定義的項目發(fā)送請求
搭建一個 nginx 服務(wù)器,將最新詞庫放到 nginx 中,讓 ik 分詞器給 nginx 發(fā)送請求,由 nginx 給 ik 分詞器返回最新的詞庫,這樣 ik 分詞器就可以將原來的詞庫和新詞庫合并起來。
在這里我使用第二種方式來自定義詞庫,創(chuàng)建前需要先安裝 nginx, 請訪問第六章有關(guān)內(nèi)容。
在 /mydata/nginx/html/ 路徑下新建一個 es 目錄,并新建一個詞庫 fenci.txt:
在這里插入圖片描述
訪問 http://192.168.56.10/es/fenci.txt,可以請求的詞庫的內(nèi)容:
在這里插入圖片描述
修改 /usr/share/elasticsearch/plugins/ik/config/ 中的 IKAnalyzer.cfg.xml
在這里插入圖片描述
/usr/share/elasticsearch/plugins/ik/config
IK Analyzer 擴展配置
http://192.168.56.10/es/fenci.txt
在這里插入圖片描述
注意:如果打開 IKAnalyzer.cfg.xml 為亂碼的話,可以在先退出當(dāng)前文件,在命令行輸入 vi /etc/virc,
然后在文件添加 set encoding=utf-8,保存退出,重新打開 IKAnalyzer.cfg.xml 即可。
在這里插入圖片描述
原來的xml:
IK Analyzer 擴展配置
重啟 ES :
docker restart elasticsearch
重新在 kibana 中進行分詞,可以看到之前無法識別的“喬碧蘿”現(xiàn)在已經(jīng)可以識別為一個單詞了:
在這里插入圖片描述
如果我們以后還有新的詞組,直接在上面的自定義詞庫fenci.txt中進行添加,并重啟 ES 即可。
由于之前在安裝 nginx 時重裝了 ES,所以需要設(shè)置一下 ES 的自動啟動服務(wù):
docker update elasticsearch --restart=always
參考:
總結(jié)
以上是生活随笔為你收集整理的es自建搜索词库_【ES从入门到实战】二十三、全文检索-ElasticSearch-分词-自定义扩展词库...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适合零基础学python的书籍_适合零基
- 下一篇: 奇瑞艾瑞泽5 怎样查是那款车型?