1. 拉取ES镜像
1 | docker pull elasticsearch:7.6.1 |
Elasticsearch 7.6.1 目录结构如下:
- bin :脚本文件,包括 ES 启动 & 安装插件等等
- config : elasticsearch.yml(ES 配置文件)、jvm.options(JVM 配置文件)、日志配置文件等等
- lib : 类库
- logs : 日志文件
- modules : ES 所有模块,包括 X-pack 等
- plugins : ES 已经安装的插件。默认没有插件
- data : ES 启动的时候,会有该目录,用来存储文档数据。该目录可以设置
1.1 启动ES镜像
1 | docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 elasticsearch |
注意: 若是开发环境最好给他分配内存,因为,ES
默认启动占用内存是2g。
- -Xms256m,初始分配大小
- -Xmx256m,最大分配大小
这样es就启动好了。我们可以去检查es是否安装完成,可以输入命令:
1 | curl http://ip:9200 |
或在浏览器中打开http://ip:9200这个网址,如果能看到以下信息则说明我们的es是已经安装好了的。
1 | { |
1.2 修改配置,解决跨域访问问题
首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件。
1 | docker exec -it elasticsearch /bin/bash 交互式进入容器 |
在elasticsearch.yml的文件末尾加上:
1 | http.cors.enabled: true |
修改配置后重启容器即可。
1 | docker restart elasticsearch |
或者使用数据卷直接绑定,动态修改配置文件
2. 安装ik分词器
什么是IK分词器?
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如 “我爱狂神” 会被分为”我”,”爱”,”狂”,”神”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。如果要使用中文,建议使用ik分词器!IK提供了两个分词算法:ik_smart 和 ik_max_word
- ik_smart 为最少切分
- ik_max_word为最细粒度划分!
es
自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题。首先进入到plugins
目录中下载分词器,下载完成后然后解压,再重启es
即可。具体步骤如下:
注意: elasticsearch
的版本和ik
分词器的版本需要保持一致,不然在重启的时候会失败。可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可。https://github.com/medcl/elasticsearch-analysis-ik/releases
1 | cd /usr/share/elasticsearch/plugins/ cd到plugins目录 |
然后可以在kibana界面的dev tools
中验证是否安装成功
1 | POST test/_analyze |
不添加”analyzer”: “ik_max_word”,则是每个字分词,可以在下面kibana安装完成以后尝试一下。
3. 拉取kibana镜像
Kibana
是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。
1 | docker pull kibana:7.6.1 |
注: 版本对应
3.1 启动kibana镜像
安装完成以后需要启动kibana容器,使用--link
连接到elasticsearch容器,命令如下:
1 | docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.6.1 |
启动以后可以打开浏览器输入http://ip:5601
就可以打开kibana的界面了。