IK分詞器

什麼是IK分詞器?算法

分詞:即把一段中文或者別的劃分紅一個個的關鍵字,咱們在搜索時候會把本身的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,而後進行一個匹配操做,默認的中文分詞器是將每一個字當作一個詞,好比"我愛技術"會被分爲"我","愛","技","術",這顯然不符合要求,因此咱們須要安裝中文分詞器IK來解決這個問題數據庫

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

其中ik_smart爲最少切分,ik_max_word爲最細粒度劃分工具

安裝 IK:測試

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

 

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

 

 改了個名插件

 

 重啓ES命令行

以前是沒有插件加載的3d

 

 添加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

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

相關文章
相關標籤/搜索