基于docker安装Elasticsearch+ElasticSearch-Head+IK分词器

1.什么是 Elastic Stack

Elastic Stack 如果你没有听过,那么 ELK 一定听过。ELK 是三款软件的简称,分别是 Elasticsearch、Logstash、Kibana 组成,随着 Elastic 的发展需要融入越来越的技术,比如 Beats,如果再用每个技术的首字母大写拼接,名称会越来越长,所以技术团队决定换一个名称 Elastic Stack ,ELK 是之前的称呼 Elastic Stack 是新的称呼。

2.什么 Elasticsearch

全文搜索是很多网站常见功能,比如 GitHub 站内搜索、JD 商品搜索、B 站视频搜索。Elasticsearch 是当今最火的搜索引擎之一,它的底层基于另外一个 java 开源搜索引擎 Lucene,是一款开源分布式搜索引擎,并且提供了一系列 REST API 操作接口。

3.docker 拉去 Elasticsearch

3.1格式

docker pull docker.io/elasticsearch:版本号

3.2 最新版的

docker pull docker.io/elasticsearch

 3.3 7.70版

docker pull docker.io/elasticsearch:7.7.0

4. 查看镜像

docker images

5. 创建映射文件(最好提前创建,不然还得进入docker修改)

5.1 创建/mydata目录中

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
mkdir -p /mydata/elasticsearch/plugins  # ---这个目录留着装插件

5.2 修改配置文件

5.2.1 打开

vim /mydata/elasticsearch/config/elasticsearch.yml

 5.2.3 配置文件内容

# 允许任意主机访问
http.host: 0.0.0.0
# es-head连接配置
http.cors.enabled: true
http.cors.allow-origin: "*"

5.3 递归更改权限,es需要访问(ubuntu)

chmod -R 777 /mydata/elasticsearch/

6 运行容器启动 Elasticsearch

6.1 启动

docker run --name=es_t1 -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.7.0

6.2 参数介绍

9200是用户交互端口 9300是集群心跳端口
-d:后台启动
--name:容器名称
-p:端口映射
-e:设置环境变量
-v: 目录映射
discovery.type=single-node:单机运行
b0e9f9f047e6:镜像id
如果启动不了,可以加大内存设置:-e ES_JAVA_OPTS="-Xms512m -Xmx512m"

7. 安装成功

7.1 查看容器状态

docker ps -a

7.2 未启动查看错误

docker logs 容器id

7.3 访问

7.3.1 关闭防火墙

############ ubuntu ########
# 查看状态 
sudo ufw status
看到Status: inactive 未激活,就是关闭
看到Status: active 已激活,就是开启

# 开启防火墙
sudo ufw enable

# 关闭防火墙
sudo ufw disable


############ centos ########
...

7.3.2 访问

http://106.14.42.253:9200/

基于docker安装Elasticsearch+ElasticSearch-Head+IK分词器_第1张图片

8. 安装ElasticSearch-Head

8.1 拉取镜像

docker pull mobz/elasticsearch-head:5

8.2 运行容器

docker run -di --name=elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

8.3 访问(跨域,在安装es时,就已经配置好了)

http://106.14.42.253:9100/

基于docker安装Elasticsearch+ElasticSearch-Head+IK分词器_第2张图片

 9. 安装IK分词器

9.1 介绍

首先问一个问题,ElasticSearch中自带的有分词器为什么还要使用IK分词器?

在ElasticSearch中的分词器会把中文分为一个一个的字,例如"今天是周五",会被分成“今”、“天”、“是”,“周”、“五”,这里很明显是不合适的,在大多数场景下需要的是词而不是字。

所以就需要安装中文分词器IK来解决这个问题。

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

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

9.2 安装

9.2.1 进入到ElasticSearch容器中

docker exec -it 容器ID /bin/bash

9.2.2 进入plugins/ 创建文件夹

cd plugins/
mkdir ik
cd ik

9.2.3 下载

yum install wget -y
yum install zip unzip -y
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

9.2.4 解压

unzip elasticsearch-analysis-ik-7.7.0.zip

9.2.5 删除压缩包

rm -rf  elasticsearch-analysis-ik-7.7.0.zip

9.2.6 退出 

exit

9.2.7 重启

docker restart 0cf9533110

你可能感兴趣的:(es,elasticsearch,docker,搜索引擎)