写点什么

docker 下,一行命令搭建 elasticsearch6.5.0 集群 (带 head 插件和 ik 分词器)

作者:程序员欣宸
  • 2022 年 8 月 07 日
  • 本文字数:2263 字

    阅读完需:约 7 分钟

docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos


  • 搭建一个 elasticsearch6.5.0 集群环境,再把 elasticsearch-head 插件和 ik 分词器装好,在 docker 环境下完成这些工作需要多久?

  • 答案是:只需下面这一行命令:


wget https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml && \docker-compose up -d
复制代码


  • 接下来就试试这一行命令吧;

环境信息

  1. 操作系统:CentOS 7.6

  2. docker:17.03.2-ce

  3. docker-compose:version 1.23.2

  4. elasticsearch:这里选用的是 6.5.0 版本的 elasticsearch,因为目前 ik 分词器官方最高只支持到 6.5.0 版本

验证

  • 在上述环境下,输入上面提到的那行命令,即可创建 elasticsearch6.5.0 集群环境,如下:


[root@hedy 003]# wget https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml && \> docker-compose up -d--2019-01-27 20:38:10--  https://raw.githubusercontent.com/zq2599/blog_demos/master/elasticsearch_docker_compose/docker-compose.yml正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.24.133正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.24.133|:443... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:1227 (1.2K) [text/plain]正在保存至: “docker-compose.yml”
100%[=======================================================================================================================================================================>] 1,227 --.-K/s 用时 0s
2019-01-27 20:38:11 (61.9 MB/s) - 已保存 “docker-compose.yml” [1227/1227])
Creating network "003_esnet" with the default driverCreating head ... doneCreating elasticsearch2 ... doneCreating elasticsearch ... done
复制代码


  • 假设 docker 所在电脑的 IP 地址是 192.168.1.101,如下图,浏览器访问此地址可以查看 es 信息:http://192.168.1.101:9200


  • 如下图,浏览器访问此地址可以使用 head 插件:http://192.168.1.101:9100


  • 执行以下命令来创建一个索引:


curl -X PUT http://192.168.1.101:9200/test001
复制代码


  • 执行以下命令验证 ik 分词器效果:


curl -X POST \'http://192.168.1.101:9200/test001/_analyze?pretty=true' \-H 'Content-Type: application/json' \-d '{"text":"我们是软件工程师","tokenizer":"ik_smart"}'
复制代码


  • 收到的响应如下,可见 ik 分词器已经生效:


{  "tokens" : [    {      "token" : "我们",      "start_offset" : 0,      "end_offset" : 2,      "type" : "CN_WORD",      "position" : 0    },    {      "token" : "是",      "start_offset" : 2,      "end_offset" : 3,      "type" : "CN_CHAR",      "position" : 1    },    {      "token" : "软件",      "start_offset" : 3,      "end_offset" : 5,      "type" : "CN_WORD",      "position" : 2    },    {      "token" : "工程师",      "start_offset" : 5,      "end_offset" : 8,      "type" : "CN_WORD",      "position" : 3    }  ]}
复制代码


  • 验证完毕,集群、head 插件、ik 分词器都是正常的;

一行命令如何能实现上述功能

  • 首先来看看 docker-compose.yml 文件的内容,这里面决定了整个构成整个功能的容器:


version: '2.2'services:  elasticsearch:    image: bolingcavalry/elasticsearch-with-ik:6.5.0    container_name: elasticsearch    environment:      - cluster.name=docker-cluster      - bootstrap.memory_lock=true      - http.cors.enabled=true      - http.cors.allow-origin=*      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"    ulimits:      memlock:        soft: -1        hard: -1    volumes:      - esdata1:/usr/share/elasticsearch/data    ports:      - 9200:9200    networks:      - esnet  elasticsearch2:    image: bolingcavalry/elasticsearch-with-ik:6.5.0    container_name: elasticsearch2    environment:      - cluster.name=docker-cluster      - bootstrap.memory_lock=true      - http.cors.enabled=true      - http.cors.allow-origin=*      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"      - "discovery.zen.ping.unicast.hosts=elasticsearch"    ulimits:      memlock:        soft: -1        hard: -1    volumes:      - esdata2:/usr/share/elasticsearch/data    networks:      - esnet  head:    image: bolingcavalry/elasticsearch-head:6    container_name: head    ports:      - 9100:9100    networks:      - esnetvolumes:  esdata1:    driver: local  esdata2:    driver: local
networks: esnet:
复制代码


欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

发布于: 2022 年 08 月 07 日阅读数: 119
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018.04.19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)_elasticsearch_程序员欣宸_InfoQ写作社区