昭通網(wǎng)站建設(shè)如何提高網(wǎng)站排名的方法
ElasticSearch 添加IK分詞器
- 前言
- 一、IK分詞器的算法
- 二、Ik分詞器的下載安裝(Winows 版本)
- 三、Ik分詞器的下載安裝(Linux 版本)
- 四、驗(yàn)證測(cè)試(postman工具)
- 測(cè)試 ik_smart 分詞算法
- 測(cè)試 ik_max_word 分詞算法
- 擴(kuò)展字典
前言
- Elasticsearch(ES)內(nèi)置攜帶了多種類型的分詞器,而Standard Analyzer(單字分詞)只是其中之一,并且是默認(rèn)使用的分詞器。
- IK分詞器是一個(gè)專門為中文文本設(shè)計(jì)的分詞工具,它不是ES的內(nèi)置組件,而是一個(gè)需要單獨(dú)安裝和配置的插件。
- 在Elasticsearch中,IK分詞器和Standard Analyzer是并存的關(guān)系,它們并不會(huì)互相排斥或覆蓋。
- 在Elasticsearch中,當(dāng)你在創(chuàng)建索引時(shí)為某個(gè)字段指定了特定的分詞器(比如中文分詞器IK Analyzer),那么這個(gè)分詞器就會(huì)被應(yīng)用于該字段的文本數(shù)據(jù),在后續(xù)的索引和查詢過(guò)程中都會(huì)使用這個(gè)分詞器來(lái)處理該字段的文本。
如果你沒(méi)有為字段指定分詞器,Elasticsearch會(huì)使用該字段類型默認(rèn)的分詞器。對(duì)于文本(text)類型的字段,默認(rèn)的分詞器通常是Standard Analyzer,它適用于大多數(shù)英文文本的分詞處理,但不適用于中文等需要特殊分詞處理的文本。
一、IK分詞器的算法
IK提供了兩個(gè)分詞算法:ik_smart和ik_max_word,其中ik smart為最少切分,ik_max_word為最細(xì)粒度劃分!
ik_max_word: 會(huì)將文本做最細(xì)粒度的拆分,比如會(huì)將"中華人民共和國(guó)國(guó)歌"拆分為"中華人民共和國(guó),中華人民,中華,華人,人民共和國(guó),人民,人,民,共和國(guó),共和,和,國(guó)國(guó),國(guó)歌",會(huì)窮盡各種可能的組合;
ik_smart: 會(huì)做最粗粒度的拆分,比如會(huì)將"中華人民共和國(guó)國(guó)歌"拆分為"中華人民共和國(guó),國(guó)歌"。
二、Ik分詞器的下載安裝(Winows 版本)
下載地址: https://github.com/medcl/elasticsearch-analysis-ik
注意:IK分詞器插件的版本要和ElasticSearch的版本一致
我這邊是v7.15.2的
解壓安裝包到 ElasticSearch 所在文件夾中的plugins目錄中:
Windows 環(huán)境下 再啟動(dòng)ElasticSearch,查看IK分詞器插件是否安裝成功:
三、Ik分詞器的下載安裝(Linux 版本)
下載地址: https://github.com/medcl/elasticsearch-analysis-ik
注意:IK分詞器插件的版本要和ElasticSearch的版本一致
我這邊是v7.15.2的
需要在plugins目錄下創(chuàng)建ik分詞器文件夾(文件夾名稱一定要命名為ik,不然啟動(dòng)elasticsearch時(shí)候會(huì)報(bào)錯(cuò)的),然后在把里面的東西解壓放在這個(gè)ik下面,如下:
解壓完ik分詞器安裝包后,重啟elasticsearch。
四、驗(yàn)證測(cè)試(postman工具)
使用postman工具校驗(yàn)
測(cè)試 ik_smart 分詞算法
分詞請(qǐng)求+入?yún)?#xff1a;
請(qǐng)求:
http://127.0.0.1:9200/_analyze入?yún)?#xff1a;
{"analyzer": "ik_smart","text": "海內(nèi)存知己,天涯若比鄰"
}
結(jié)果如下所示:
測(cè)試 ik_max_word 分詞算法
分詞請(qǐng)求+入?yún)?#xff1a;
請(qǐng)求:
http://127.0.0.1:9200/_analyze入?yún)?#xff1a;
{"analyzer": "ik_max_word","text": "海內(nèi)存知己,天涯若比鄰"
}
結(jié)果如下所示:
比較兩個(gè)分詞算法對(duì)同一句中文的分詞結(jié)果,ik_max_word比ik_smart得到的中文詞更多(從兩者的英文名含義就可看出來(lái)),但這樣也帶來(lái)一個(gè)問(wèn)題,使用ik_max_word會(huì)占用更多的存儲(chǔ)空間。
擴(kuò)展字典
從上面的舉例來(lái)看,我使用 ik_max_word 算法時(shí),分詞里面沒(méi)有“存知己”這個(gè)詞,如果我想加該怎么辦,這個(gè)時(shí)候就涉及了擴(kuò)展字典的操作了。
第一步:
在ik分詞器文件的config目錄中新建自定義的字典文件,以.dic為后綴,并在文件中加入“存知己”
第二步:
然后打開(kāi) IKAnalyzer.cfg.xml 文件,把自定義的字典添加到IK的字典中:
第三步:
重啟ES,再次測(cè)試,就發(fā)現(xiàn)有了“存知己”這個(gè)詞了
參考文章
【1】ElasticSearch——IK分詞器的下載及使用
【2】Elasticsearch和Kibana版本對(duì)應(yīng)關(guān)系
【3】ElasticSearch在linux環(huán)境中集成IK分詞器