一、安裝
https://www.cnblogs.com/wudequn/p/11001382.html
https://github.com/medcl/elasticsearch-analysis-ik/(官方文檔)
二、配置
IKAnalyzer.cfg.xml 這個是配置文件,其他的都是自帶的分詞文件。
<!--用戶可以在這里配置自己的擴展字典 --> <entry key="ext_dict"></entry> <!--用戶可以在這里配置自己的擴展停止詞字典--> <entry key="ext_stopwords"></entry>
將分詞文件填入***.dic <entry key ="exyt_dict">my.dic<entry>中,在重啟es。
或者
<!--用戶可以在這里配置遠程擴展字典 --> <entry key="remote_ext_dict">words_location</entry> <!--用戶可以在這里配置遠程擴展停止詞字典--> <entry key="remote_ext_stopwords">words_location</entry>
其中location是指一個 url,比如http://*******,該請求只需滿足以下兩點即可完成分詞熱更新。
1、該 http 請求需要返回兩個頭部(header),一個是Last-Modified,一個是ETag,這兩者都是字符串類型,只要有一個發生變化,該插件就會去抓取新的分詞進而更新詞庫。
2、該 http 請求返回的內容格式是一行一個分詞,換行符用\n即可。
滿足上面兩點要求可實現熱更新分詞,不需要重啟 ES 實例。
三、測試
https://github.com/medcl/elasticsearch-analysis-ik/ (官網教程 要是跑不通就試試下面的)
mapping相當於指定表中字段 以及 字段類型。這時也可以指定分詞。
https://blog.csdn.net/qinyuezhan/article/details/82463340 (mapping 詳解)
ik_max_word: 會將文本做最細粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌”,會窮盡各種可能的組合,適合 Term Query;
ik_smart: 會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,國歌”,適合 Phrase 查詢。
http://localhost:9200/這里是索引名稱/_analyze/