ElasticSearch IK 分詞器快速上手
一、安裝 IK 分詞器
1.分配偽終端
我的 ElasticSearch 是使用 Docker 安裝的,所以先給容器分配一個偽終端.之后就可以像登錄服務器一樣直接操作docker 中的內容了
docker exec -it 容器ID /bin/bash
2.使用 elasticsearch-plugin 安裝插件
cd plugins進入到 plugins 文件夾
執(zhí)行如下命令,7.12.0 需要修改成你的 es 版本號
../bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip
3.重啟 elasticsearch 容器
docker restart 容器ID
4.常見問題
(1)java.lang.IllegalStateException
執(zhí)行elasticsearch-plugin install的時候,出現了 Failed installing和java.lang.IllegalStateException
查看了一下,我的 plugins/ 目錄下已經有一個名為 ik 的文件夾了.
抱著試試的心態(tài),刪掉了這個名為 ik 的文件夾,重新執(zhí)行
../bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip
安裝成功
二、ik 分詞原理
(占位,等有時間讀源碼再來補充)
三、ik_smart 和 ik_max_word
GET _analyze?pretty{ "analyzer": "ik_smart", "text": "不像我,只會心疼鴿鴿"}
GET _analyze?pretty{ "analyzer": "ik_max_word", "text": "不像我,只會心疼鴿鴿"}
結論
_analyzer構建索引時候的分詞,索引的時候使用 max_word
search_analyzer搜索時的分詞,查詢的時候使用 smart