IK分詞器


什么是IK分詞器?

分詞:即把一段中文或者別的划分成一個個的關鍵字,我們在搜索時候會把自己的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,然后進行一個匹配操作,默認的中文分詞器是將每個字看成一個詞,比如"我愛技術"會被分為"我","愛","技","術",這顯然不符合要求,所以我們需要安裝中文分詞器IK來解決這個問題

IK提供了兩個分詞算法:ik_smart和ik_max_word

其中ik_smart為最少切分,ik_max_word為最細粒度划分

安裝 IK:

同樣下載不說直接安裝.記得版本相同

 

解壓縮后拷貝到ElasticSearch的plugins文件夾下

 

 改了個名

 

 重啟ES

之前是沒有插件加載的

 

 添加IK后

 

 可以清晰的看到加載了 analysis-ik

也可以通過ES自帶的工具查看 命令行執行 ElasticSearch-plugin list

 

 進入Kibana測試

先測試 ik_smart

 

 然后測試 ik_max_word

 

 測試 "超級喜歡彼岸舞" 分別測試

 

 

 

 發現結果沒有區別,而且他不認為 彼岸舞 是一個詞,這就是一個問題,則么辦呢?

這種自己需要的詞,需要自己加到字典中

IK分詞器增加自己的配置:

我們找到IK的配置文件,位於ik/config/IKAnalyzer.cfg.xml

 

 

 

 可以在這里添加自己的擴展詞典和停用詞詞典

 

 添加一個自己的詞典

然后去創建文件

 

 加入自己的詞

 

 保存后重啟ES

就知道遠遠沒有視屏中的順利..呵呵報錯...一大堆,先不管啥錯,坑定和剛才配置有關

先嘗試把剛才定義的詞典dance.dic編碼改為UTF-8試試
呵呵沒用..還是報錯

是不是我不能創建dic文件,拷貝別的改名試試,刪除其中的內容,添加自己定義的

還是報錯,無語了,百度求救

百度了半天也沒有搜到任何相關的東西

只能先把配置中的dance.dic刪除了,試試行不行

然后發現,刪除后重啟還是報錯,我TM...無語了

當我快絕望的時候發現,原來Kibana也一直在報錯,接着我把Kibana和head插件都關閉后重新啟動

發現不報錯了,接下來重新配置IK配置文件,然后重啟,發現一點事也沒有了

 

 

可以看到了加載了我的dance.dic

然后啟動Head插件和Kibana

啟動完成后再次進行測試

 

 

 發現 彼岸舞 已經成為一個詞了

作者:彼岸舞

時間:2020\09\10

內容關於:ElasticSearch

本文來源於網絡,只做技術分享,一概不負任何責任


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM