0%

Docker安装ElasticSearch

一、安装Docker

安装依赖包,执行命令

1
yum install -y yum-utils device-mapper-persistent-data lvm2

此时若直接执行安装docker命令就会发现是十分慢的,这个等待过程是漫长的。
配置国内的源就可以解决问题yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo这里使用的是阿里云的源。

接着再执行命令

1
yum install docker-ce docker-ce-cli containerd.io    //安装docker即可。

配置docker开机自启

1
systemctl enable docker

执行命令启动docker

1
systemctl start docker

查看docker版本

1
docker -v

详细安装教程也可以移步:https://zhuanlan.zhihu.com/p/699515988

二、安装ElasticSearch

使用docker直接获取es镜像,执行命令

1
docker pull elasticsearch:7.7.0

创建容器

1
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
1
2
3
4
--name 表示容器名称  
-d: 后台运行容器,并返回容器ID;
-e: 指定容器内的环境变量
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

es默认端口为9200,只用ip地址+端口号直接访问,就会返回以下内容。能看到以下内容表示已经安装成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 20240624175208
// http://120.46.74.101:9200/

{
"name": "a2a07f317da2",
"cluster_name": "docker-cluster",
"cluster_uuid": "N905CEz0RaWVe8AkWYioOA",
"version": {
"number": "7.7.0", // 版本号
"build_flavor": "default",
"build_type": "docker",
"build_hash": "81a1e9eda8e6183f5237786246f6dced26a10eaf",
"build_date": "2020-05-12T02:01:37.602180Z",
"build_snapshot": false,
"lucene_version": "8.5.1",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}

三、安装ElasticSearch-Head

同样也采用Docker进行快速安装,跟上边一样同样先拉取镜像,执行命令

1
docker pull mobz/elasticsearch-head:5

接着创建容器,执行

1
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

还需要一个操作,那就是启动容器docker start 容器id
安装完成直接使用域名加端口9100即可访问。

处理跨域

在连接ElasticSearch会发现无法连接,由于时前后端分离开发,所以会存在跨域问题,需要在服务端做跨域处理。
执行命令

1
docker exec -it elasticsearch /bin/bash

进入到第一步创建的ElasticSearch容器中,修改配置文件 vi config/elasticsearch.yml 即可。

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

四、安装IK分词器

IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细力度。

特别注意:这里需要注意安装的版本需要跟ElasticSearch版本一致。

进入到ElasticSearch容器中docker exec -it 容器ID /bin/bash

使用wget来进行安装,执行

1
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

当你使用wget安装出现Unable to establish SSL connection时执行以下俩个命令即可。

1
2
yum install opensslls
yum install openssl-devel

如果没有wget工具通过以下命令安装:

1
yum install wget

执行 cd /usr/share/elasticsearch/plugins 来到插件目录创建一个IK目录

将压缩包移动到IK目录中,执行解压指令

1
unzip elasticsearch-analysis-ik-7.7.0.zip

接着删除压缩包即可,此时你可以看到一个config包和几个jar包

最后退出容器,重启重启容器即可。

检验是否成功

安装完后,就可以使用 _analyze 语法验证

1
2
3
4
5
GET /_analyze
{
"text": "中华人民共和国国歌",
"analyzer": "ik_smart"
}

响应结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"tokens": [
{
"token": "中华人民共和国",
"start_offset": 0,
"end_offset": 7,
"type": "CN_WORD",
"position": 0
},
{
"token": "国歌",
"start_offset": 7,
"end_offset": 9,
"type": "CN_WORD",
"position": 1
}
]
}

表示分词IK已生效。


参考文献: https://developer.aliyun.com/article/929422#slide-4