Docker启ElasticSearch、kibana以及配置ik分词

首先把镜像pull下来,我们这次使用的是7.12.0版本

docker pull elasticsearch:7.12.0
docker pull kibana:7.12.0
#推荐做docker镜像加速,/etc/docker/deamon.json配置加速地址

配置elasticsearch

创建挂载目录

mkdir es/config
mkdir es/logs
mkdir es/plugins
mkdir es/data
touch es/config/elasticsearch.yml
echo 'http.host: 0.0.0.0'> es/config/elasticsearch.yml
#开放任何地址访问

加写的权限,不然挂载会出问题导致服务起不来

chmod -R 777 es/

启动容器

docker run --name es-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/es/data:/usr/share/elasticsearch/data \
-v  /opt/es/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.0

启动后访问9200端口测试,记得打开防火墙

{
    "name": "c1296b5bdbe0",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "aRGT0IqPSnG5AzmfxNXiOw",
    "version": {
        "number": "7.12.0",
        "build_flavor": "default",
        "build_type": "docker",
        "build_hash": "78722783c38caa25a70982b5b042074cde5d3b3a",
        "build_date": "2021-03-18T06:17:15.410153305Z",
        "build_snapshot": false,
        "lucene_version": "8.8.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}

当返回正常的json时,表示服务已正常启动

配置kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 -p 5601:5601 -d kibana:7.12.0

上面这条命令中的es为docker中ElasticSearch的容器名 一般创建容器的时候,不特别指定的话,都在bridge下

创建成功访问

切换中文: 在config/kibana.yml添加

i18n.locale: "zh-CN"

配置ik分词插件(更友好的中文分词)

下载地址:这里下载7.12.0版本 https://github.com/medcl/elasticsearch-analysis-ik/releases

将下载后的zip解压放入plugins中

小功能:此处可以自定义分词库,也可远程热更新部署 用vim在ik中的config目录中新建词库文件my_word.dic输入你定义的词保存。 修改ik中的config目录下面的IKAnalyzer.cfg.xml文件。

之后重启es与kibana测试

  • Ik_smart:会做最粗粒度的拆分
  • Ik_max_word:会将文本做最细粒度的拆分

这里搞了点测试数据