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