自己动手制作 elasticsearch 的 ik 分词器的 Docker 镜像
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
关于 ik 分词器
elasticsearch 常用的中文分词器是 ik 分词器,安装和使用的详情请参考《elasticsearch安装和使用ik分词器》;
docker 下的 elasticsearch,如何安装 ik 分词器
借助 elasticsearch 的官方镜像,我们在 docker 环境能快速搭建 elasticsearch 服务,但是 ik 分词器如何安装呢?
第一种方法:执行 docker exec>命令进入容器,再按照物理机的步骤来安装,显然每次创建容器都要这么做一次的话代价太高了;
第二种方法:做个集成了 ik 分词器的 elasticsearch 镜像,这样每个容器运行的时都自带了 ik 分词器;
今天实战的内容就是上面的第二种方法:自制 elasticsearch 镜像,该镜像继承了 ik 分词器;
版本信息
操作系统:CentOS 7.6
docker:17.03.2-ce
docker-compose:version 1.23.2
elasticsearch:这里选用的是 6.5.0 版本的 elasticsearch,因为目前 ik 分词器官方最高只支持到 6.5.0 版本
常规的安装步骤
先来梳理一下常规的 ik 分词器安装步骤:
准备 maven 环境;
下载 ik 分词器源码;
编译构建源码;
编译结果是个 zip 包,复制到 elasticsearch 的插件目录去解压;
启动 elasticsearch;
以上就是常规安装步骤,接下来就是把这些在 elasticsearch 的镜像中再做一遍即可;
编写 Dockerfile
Dockerfile 的内容如下,已经有了详细注释就不再赘述了:
构建镜像
在 Dockerfile 所在目录执行以下命令即可构建镜像:
构建的过程中,mave 编译构建的时候会在下载很多 jar 包,比较耗时,请耐心等待;
构建成功后,执行命令 docker history bolingcavalry/elasticsearch-with-ik:6.5.0>查看构建信息,如下:
验证镜像
接下来在 Docker 上部署 elasticsearch 集群,验证做好的镜像是否好用,创建 docker-compose.yml 文件,内容如下:
在 docker-compose.yml 文件所在目录下执行命令 docker-compose up -d>,即可创建 yml 文件中编排的容器,如下:
假设 docker 所在电脑的 IP 地址是 192.168.1.101>,执行以下命令来创建一个索引:
执行以下命令验证 ik 分词器效果:
收到的响应如下,可见 ik 分词器已经生效:
将镜像提交到 docker 镜像仓库
前面构建好的镜像只存在本地电脑,我们可以将其提交到 docker 仓库给更多用户使用:
提交镜像到 hub.docker.com 网站,需要用到该网站的账号,请确保您已经在此网站注册过;
执行 docker login>登录,期间会要求输入用户名和密码;
执行命令 docker push bolingcavalry/elasticsearch-with-ik:6.5.0>,即可将本地镜像 push 到 hub.docker.com;
注意镜像名称的前缀,例如我这里的前缀是 bolingcavalry>,要和账号保持一致;
提交成功后,在 hub.docker.com 网站即可看到此镜像,如下图,此时任何人都可以 pull 来下使用了:
至此,ik 分词器镜像的制作和验证就完成了,希望能帮助您在 docker 下更方便的使用 elasticsearch 服务;
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/642ab7a3e7bbdf8749e6f9a77】。文章转载请联系作者。
评论