基于docker容器安装Elasticsearch的IK分词器插件

​本文主要介绍如何离线安装ES的ik分词器,网上说很容易,但实际上要注意的细节很多,我先列出来

注意:1.ES的版本跟ik分词器的版本要一致,否则即使安装成功,ES重启之后会闪退,docker查看日志也会报错。

2.将也说解压到/usr/share/elasticsearch/plugins/后,IK分词器压缩包没有删除,ES重启之后也会闪退

3.ik分词器压缩包里面的内容不是第一层目录,解压之后,并且查看日志报错内容是:Caused by: org.elasticsearch.bootstrap.BootstrapException: java.nio.file.NoSuchFileException: /usr/s,ES重启之后也会闪退。

解释一下所谓第一层目录,我发现我下载的版本解压之后,压缩包内容实在elasticsearch目录下,但是我发现高版本的不会

所以这也是要注意的。

同时在线的的话GitHub,网址:Releases · medcl/elasticsearch-analysis-ik · GitHub,下载不稳定,或者可以试一试,因为在线安装确定比较方便,具体可以看这个博客:docker 安装ElasticSearch的中文分词器IK-CSDN博客,一般是安装不成功的,并且本地下载也有可能下载不成功,因为我本次安装是5.6.12版本,需要的可以下载,资源链接是:

download.csdn.net/download/qi...

下面开始介绍如何安装

1.将elasticsearch-analysis-ik-5.6.12上传到linux服务器,建议使用上传工具比较xftp,不过文件上传可能也会遇到一点问题,发现查用ftp是连接不成功的,需要切换到sftp并且使用22端口,xftp将文件上传到linux的tmp目录下,

2.linux执行压缩包解压安装

将压缩包移动到容器中

bash 复制代码
docker cp /tmp/elasticsearch-analysis-ik-5.6.12.zip elasticsearch:/usr/share/elasticsearch/plugins

进入容器

bash 复制代码
docker exec -it elasticsearch /bin/bash

创建目录

bash 复制代码
mkdir /usr/share/elasticsearch/plugins/ik

将文件压缩包移动到ik中

bash 复制代码
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-5.6.12.zip /usr/share/elasticsearch/plugins/ik

进入目录

bash 复制代码
cd /usr/share/elasticsearch/plugins/ik

解压

python 复制代码
unzip elasticsearch-analysis-ik-5.6.12.zip

删除压缩包

bash 复制代码
rm -rf elasticsearch-analysis-ik-5.6.12.zip

可以通过ls命令查看是否删除成功,不存在压缩包,说明删除成功

退出镜像重启ES

bash 复制代码
exit
docker restart elasticsearch

重启kibana,这一步也是需要操作

bash 复制代码
docker restart kibana容器id

3.进行验证,docker ps发现es和kibana都正常运行,在kibana继续验证

bash 复制代码
GET _cat/plugin 命令查看

Kinaba测试,发现分词符合需求

相关推荐
绝无仅有39 分钟前
后端 Go 经典面试常见问题解析与总结
后端·面试·github
绝无仅有42 分钟前
后端工程师面试常见问题与回答解析总结
后端·面试·github
程序员爱钓鱼3 小时前
Go语言实战案例 — 项目实战篇:简易博客系统(支持评论)
前端·后端·go
追逐时光者9 小时前
精选 4 款基于 .NET 开源、功能强大的 Windows 系统优化工具
后端·.net
TF男孩10 小时前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
AAA修煤气灶刘哥11 小时前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
AAA修煤气灶刘哥11 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
你的人类朋友11 小时前
什么是API签名?
前端·后端·安全
昵称为空C13 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默14 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构