IK分詞器的安裝與使用


分詞器

什么是IK分詞器?

分詞:即把一段中文或者別的划分成一個個的關鍵字,我們在搜索時會把自己的信息進行分詞,會把數據庫中或者索引庫中的數據進行分詞,然后進行一個匹配操作,Elasticsearch的標准分詞器,會將中文分為一個一個的字,而不是詞,比如:“石原美里”會被分為“石”、“原”、“美”、“里”,這顯然是不符合要求的,所以我們需要安裝中文分詞器IK來解決這個問題。

IK提供了兩個分詞算法:ik_smart和ik_max_word,其中ik_smart為最少切分,ik_max_word為最細力度划分。

安裝IK分詞器

中文分詞插件IK的網址是 https://github.com/medcl/elasticsearch-analysis-ik

我們可以通過find / -name elasticsearch-plugin命令搜索elasticsearch-plugin在什么地方

安裝IK時要注意將github上示例的版本改成自己的elasticsearch版本,我安裝的是7.6.2,所以改成如下:

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip

安裝后重啟Elasticsearch服務

我們可以通過如下命令查看安裝的Elasticsearch插件

/usr/share/elasticsearch/bin/elasticsearch-plugin list

使用IK分詞器

首先我們通過最ik_smart小切分來測試

接着,我們通過ik_max_word最細力度切分來測試

但是有些我們自己造的詞,分詞器是無法識別的(比如:白兮會被識別為兩個詞:白和兮),這就需要我們自己加到分詞器的字典中。

通過RPM方式安裝的IK擴展配置文件地址如下

vim /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml

現在我們在/etc/elasticsearch/analysis-ik目錄下創建一個自己的詞典,例如:my.dic,並在其中添加"白兮"然后保存

這里要記得將my.dic文件所屬的用戶和組分別改為root和elasticsearch,防止elasticsearch用戶是無法讀取該文件的內容的,我們可以看到默認的其它詞典都是默認屬於root用戶和elasticsearch組的,我們把自定義的詞典也改成這樣

然后將我們新建的my.dic文件增加到IKAnalyzer.cfg.xml配置文件中

添加后重啟Elasticsearch,然后通過kibana再重新測試,可以發現,白兮已經被識別為一個詞了。

如果該文章對您有幫助,請您點個推薦,感謝。


免責聲明!

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



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