docker容器中es安装ik分词器

docker使用了一段.感觉很方便.

  • 好处: 发现之前安装有些不好.就删了重装.并且配置简单,比如mysql新版本安装有时候就会出莫名其妙的问题
  • 坏处: 对docker不是很熟.东西都放在C盘.用了一段时间.C盘涨了10多G.很坑!

下面是ik安装过程:

step1.安装es: docker pull hub.c.163.com/library/elasticsearch:latest

这里用了网易的镜像中心
需要注意下版本.lastest不代表一定非常新.毕竟es一直更新.但是镜像更新并不快.
这是查看ik版本的网址:https://github.com/medcl/elasticsearch-analysis-ik/releases
后面会提到这个版本坑

step2.启动容器: docker run -d --name es -p 9200:9200 -p 9300:9300 hub.c.163.com/library/elasticsearch

step3.进入容器:docker exec -it [es的镜像id] /bin/bash

我在有几篇博客上看到是下面的命令
docker run -it hub.c.163.com/library/elasticsearch /bin/bash,
然后在容器里安装ik成功后.我再进入容器发现ik没有了.这里我对docker了解不深.暂时当初错误样例吧

step4. 安装ik分词器:elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip
这里必须要和es版本一致.

  • 如果使用7.0.0.会出现:
    错误信息: ERROR: elasticsearch directory is missing in the plugin zip
  • 当时一直以为es的版本是最新的.肯定ik也是最新的.然后在网上虽然粘了一个低版本的:5.6.11
    这里出现的错误又不一样了.但是好处是这里的报错能让人看懂并知道如何处理了:
    Exception in thread "main" java.lang.IllegalArgumentException: plugin [analysis-ik] is incompatible with version [5.5.2]; was designed for version [5.6.11]
    at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:146)
    at org.elasticsearch.plugins.InstallPluginCommand.verify(InstallPluginCommand.java:474)
    at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:543)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:217)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:201)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
    at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:69)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
    at org.elasticsearch.cli.Command.main(Command.java:88)
    at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
  • 这里报错就说到用的5.6.11.但是不兼容5.5.2.所以我当时很意外.我用的最新的镜像.为什么会兼容5.5.2而不兼容5.6.11.然后我到网易中心一查.呵呵.最新的就是5.5.2,我也很无语啊.然后换成上面的5.5.2成功安装

step5:重启es:docker restart [es的id]

step6:成功了.你可以使用了


image

你可能感兴趣的:(docker容器中es安装ik分词器)