内容纲要
概述
本文介绍如何在 Search-OSE 7.10.2-final 版本中安装 analysis-ik 分词器。通过重新构建 Docker 镜像的方式,将 IK 分词器集成到 Search 服务中,然后替换原有镜像并重启服务即可生效。
详细说明
1. 编写 Dockerfile
在任意工作目录下创建文件 Dockerfile ,内容如下:
# 替换成你现有的 search-ose 基础镜像 ID
FROM 3e5023d4b20a
# 1. 复制压缩包到容器临时目录
COPY elasticsearch-analysis-ik-7.10.2.zip /tmp/ik.zip
# 2. 切换到 plugins 目录,执行 jar 解压
WORKDIR /usr/lib/elasticsearch/elasticsearch-7.10.2-transwarp/plugins
RUN jar -xf /tmp/ik.zip \
&& rm -f /tmp/ik.zip \
&& chown -R root:root analysis-ik
说明:
FROM后的镜像 ID 需替换为实际 Search-OSE 基础镜像的 ID 或名称。可通过docker images | grep search-ose查看。search-ose镜像默认不支持
unzip命令,所以采用jar -xf方式解压;又因jar命令不支持指定目录,所以用WORKDIR先切换目录
2. 放置插件包
将 elasticsearch-analysis-ik-7.10.2.zip 文件放到与 Dockerfile 相同的目录下。
3. 构建新镜像
在 Dockerfile 所在目录执行以下命令构建镜像:
docker build -f ./Dockerfile -t kv1:5000/transwarp/search:search-ose-7.10.2-final ./
注意:镜像标签中的 kv1:5000 需替换为实际的镜像仓库地址, search-ose-7.10.2-final 可自定义版本标识。
4. 推送镜像到仓库
将构建好的镜像推送到私有仓库:
docker push kv1:5000/transwarp/search:search-ose-7.10.2-final
5. 重启search-ose组件
manager页面重启服务。
6. 验证安装
6.1 检查插件列表
使用以下命令查看 Search 节点是否已加载 IK 插件:
curl -u elastic:Transwarp123 -XGET "kv1:9200/_cat/plugins?v"

如果返回结果中包含 analysis-ik ,则说明插件安装成功。
注意:请将 IP 和端口替换为实际 Search 服务的地址,用户名密码根据实际配置调整。
6.2 测试分词效果
# 测试 ik_max_word 分词器
curl -X POST "kv1:9200/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "ik_max_word",
"text": "疫情来临,房地产行业迎来冷淡期"
}
'
# 测试 ik_smart 分词器
curl -X POST "kv1:9200/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"analyzer": "ik_smart",
"text": "疫情来临,房地产行业迎来冷淡期"
}
'
如果返回结果中包含正确的分词列表,则说明 IK 分词器已成功集成。