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
2
3
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 elasticsearch

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.6.1

注意: 若是开发环境最好给他分配内存,因为,ES默认启动占用内存是2g。

  • -Xms256m,初始分配大小
  • -Xmx256m,最大分配大小

这样es就启动好了。我们可以去检查es是否安装完成,可以输入命令:

1
curl http://ip:9200

或在浏览器中打开http://ip:9200这个网址,如果能看到以下信息则说明我们的es是已经安装好了的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name" : "92b08f01f643",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "yevlnqvpQd2u2ah1wMyVUQ",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

1.2 修改配置,解决跨域访问问题

首先进入到容器中,然后进入到指定目录修改elasticsearch.yml文件。

1
2
3
4
5
docker exec -it elasticsearch /bin/bash  交互式进入容器

cd /usr/share/elasticsearch/config/ cd到config目录

vi elasticsearch.yml 编辑elasticsearch.yml 文件

在elasticsearch.yml的文件末尾加上:

1
2
http.cors.enabled: true
http.cors.allow-origin: "*"

修改配置后重启容器即可。

1
docker restart elasticsearch

或者使用数据卷直接绑定,动态修改配置文件

2. 安装ik分词器

什么是IK分词器?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如 “我爱狂神” 会被分为”我”,”爱”,”狂”,”神”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。如果要使用中文,建议使用ik分词器!IK提供了两个分词算法:ik_smartik_max_word

  • ik_smart 为最少切分
  • ik_max_word为最细粒度划分!

es自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题。首先进入到plugins目录中下载分词器,下载完成后然后解压,再重启es即可。具体步骤如下:

注意: elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可。https://github.com/medcl/elasticsearch-analysis-ik/releases

1
2
3
4
5
cd /usr/share/elasticsearch/plugins/   cd到plugins目录

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip GitHub下载ik分词插件

docker restart elasticsearch 重启elasticsearch容器

然后可以在kibana界面的dev tools中验证是否安装成功

1
2
3
4
5
POST test/_analyze
{
"analyzer": "ik_max_word",
"text": "你好我是东邪Jiafly"
}

不添加”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的界面了。