elasticsearch安装插件
针对 Elasticsearch 9.1.3,需下载该仓库下版本为 9.1.3 的 IK 分词器,确保与 ES 版本完全一致。
分词器下载
一、核心匹配规则
infinilabs/analysis-ik
的版本命名严格遵循「与 Elasticsearch 版本一一对应」的原则:
- ES 版本 → IK 分词器版本:
9.1.3
→9.1.3
- 下载链接格式:
https://github.com/infinilabs/analysis-ik/releases/download/v{ES版本}/elasticsearch-analysis-ik-{ES版本}.zip
二、在 Elasticsearch容器中安装(两种方式)
例如:elasticsearch-analysis-ik分词器下载
方式 1:在线安装(推荐,无需本地下载)
-
进入 ES 容器
先通过docker ps
查看 ES 容器的名称或 ID,再执行进入命令:docker exec -it <你的ES容器ID/名称> /bin/bash
示例:若容器 ID 为
152ebbfee746
,则执行docker exec -it 152ebbfee746 /bin/bash
。 -
执行在线安装命令
直接使用 ES 自带的elasticsearch-plugin
工具,从infinilabs
仓库拉取 9.1.3 版本的 IK 分词器:./bin/elasticsearch-plugin install https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-<版本>.zip
- 安装过程中会提示「是否信任该插件」,输入
y
确认即可。
- 安装过程中会提示「是否信任该插件」,输入
-
重启 ES 容器
安装完成后,退出容器(执行exit
),并重启容器使插件生效:docker restart <你的ES容器ID/名称>
方式 2:离线安装(适用于容器无法联网的场景)
-
本地下载 IK 分词器包
浏览器访问infinilabs
的 9.1.3 版本发布页,下载压缩包:
https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-9.1.3.zip
下载文件名为elasticsearch-analysis-ik-9.1.3.zip
。 -
将压缩包传入 ES 容器
使用docker cp
命令,将本地下载的压缩包复制到容器内的 ES 插件目录(默认插件目录为/usr/share/elasticsearch/plugins
):# 格式:docker cp 本地压缩包路径 容器ID/名称:容器内目标路径 docker cp /本地路径/elasticsearch-analysis-ik-9.1.3.zip <你的ES容器ID/名称>:/usr/share/elasticsearch/plugins/
示例(本地文件在
~/Downloads
目录):docker cp ~/Downloads/elasticsearch-analysis-ik-9.1.3.zip 152ebbfee746:/usr/share/elasticsearch/plugins/
-
进入容器并解压
再次进入容器,进入插件目录并解压压缩包:# 1. 进入容器 docker exec -it <你的ES容器ID/名称> /bin/bash# 2. 进入插件目录 cd /usr/share/elasticsearch/plugins/# 3. 解压(若容器内无 unzip 工具,先执行 apt update && apt install -y unzip 安装) unzip elasticsearch-analysis-ik-9.1.3.zip# 4. 删除压缩包(可选,节省空间) rm -rf elasticsearch-analysis-ik-9.1.3.zip
-
重启 ES 容器
退出容器后重启,确保插件加载:docker restart <你的ES容器ID/名称>
三、验证安装是否成功
重启容器后,通过 Kibana Dev Tools 或 curl
测试 IK 分词器是否生效:
- 在 Kibana Dev Tools 执行:
GET _analyze {"analyzer": "ik_smart", // IK 分词器的「智能分词」模式"text": "在Elasticsearch 9.1.3中使用IK分词器" // 待分词的中文文本 }
- 若返回如下包含中文分词结果的响应,说明安装成功:
{"tokens" : [{"token" : "在","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "elasticsearch","start_offset" : 1,"end_offset" : 14,"type" : "ENGLISH","position" : 1},{"token" : "9.1.3","start_offset" : 15,"end_offset" : 19,"type" : "ARABIC","position" : 2},{"token" : "中","start_offset" : 19,"end_offset" : 20,"type" : "CN_CHAR","position" : 3},{"token" : "使用","start_offset" : 20,"end_offset" : 22,"type" : "CN_WORD","position" : 4},{"token" : "ik","start_offset" : 22,"end_offset" : 24,"type" : "ENGLISH","position" : 5},{"token" : "分词器","start_offset" : 24,"end_offset" : 27,"type" : "CN_WORD","position" : 6}] }
四、注意事项
版本必须严格一致
:若 ES 是 9.1.3,IK 分词器必须是 9.1.3,版本不匹配会导致插件加载失败(容器日志会报version conflict
错误)。- 容器权限问题:若安装时提示「权限不足」,可在进入容器后,先执行
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins/
赋予 ES 用户插件目录的权限。 - 集群环境需全节点安装:若 ES 是集群(多容器),需在所有节点容器中重复上述安装步骤,否则集群会因节点插件不一致导致异常。