什么是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
本文來源於網絡,只做技術分享,一概不負任何責任