2025年3月17日 星期一 甲辰(龙)年 月十六 夜 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 云技术 > Docker

史上最详细Docker安装Elasticsearch、ik分词器、可视化工具,每一步都带有步骤图!!!

时间:06-13来源:作者:点击数:56

一、Docker安装Elasticsearch

1.1、拉取Elasticsearch镜像

  • docker pull elasticsearch:7.7.0
在这里插入图片描述

查看镜像命令:docker images

删除镜像命令:docker rmi <镜像名:版本号>ordocker rmi <镜像id>

在这里插入图片描述

1.2、启动前准备

创建存放数据及配置文件的文件夹,启动时挂载。

  • mkdir -p /home/elasticsearch/data/
  • mkdir -p /home/elasticsearch/config/
在这里插入图片描述

解释

  • -p: 参数来创建多级文件夹
  • tree:以树形结构展示文件目录

编写配置文件

  • echo 'http.host: 0.0.0.0
  • http.cors.enabled: true
  • http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml
在这里插入图片描述

解释

  • echo >>:是利用了Shell编程语法,使用echo >>指令向文件追加内容,原内容将保存
    • 使用 > 指令的话就是覆盖文件原内容并重新输入内容,若文件不存在则创建文件。
  • cat:展示文件内容。
  • http.cors.enabled: truehttp.cors.allow-origin: "*"配置是为了解决跨域问题,因为等下还要下载可视化工具查看。

修改文件夹权限

  • chmod -R 777 /home/elasticsearch/
  • ls -l # 查看文件权限
在这里插入图片描述

1.3、启动elasticseach镜像

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

参数解释

  • --name elasticsearch:将容器命名为 elasticsearch
  • -p 9200:9200:将容器的9200端口映射到宿主机9200端口
  • -p 9300:9300:将容器的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:后台运行容器,并返回容器ID

运行结果

在这里插入图片描述

查看是否启动成功

在这里插入图片描述

接下来我们就是拿浏览器访问啦。

在浏览器上输入:服务器IP地址:9200

在这里插入图片描述

1.4、可能出现的问题

  • 启动成功,但是访问失败的话,查看一下安全组中映射端口是否已经打开。如果是本地虚拟机,可能与防火墙相关(我用的云服务器,没有测试,如果有问题,还是需要大家自行去百度||谷歌一下)。
  • -e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小出现了问题。(可试着调一下,docker玩不坏的,莫慌)
  • 最后就还有可能是配置文件中出现了问题。
    • echo 'http.host: 0.0.0.0
    • http.cors.enabled: true
    • http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml
    http.host: 0.0.0.0在冒号后面有一个空格的,这里的配置文件是yml格式,所以一定要严格按照yml格式来书写。

二、为Elasticsearch安装ik分词器

2.1、什么是IK分词器?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一个词,比如"我爱技术"会被分为"我",“爱”,“技”,“术”。

在这里插入图片描述

结果

  • {
  • "tokens": [
  • {
  • "token": "我",
  • "start_offset": 0,
  • "end_offset": 1,
  • "type": "<IDEOGRAPHIC>",
  • "position": 0
  • },
  • {
  • "token": "爱",
  • "start_offset": 1,
  • "end_offset": 2,
  • "type": "<IDEOGRAPHIC>",
  • "position": 1
  • },
  • {
  • "token": "技",
  • "start_offset": 2,
  • "end_offset": 3,
  • "type": "<IDEOGRAPHIC>",
  • "position": 2
  • },
  • {
  • "token": "术",
  • "start_offset": 3,
  • "end_offset": 4,
  • "type": "<IDEOGRAPHIC>",
  • "position": 3
  • }
  • ]
  • }

这显然不符合要求,所以我们需要安装中文分词器IK来解决这个问题

IK提供了两个分词算法:ik_smartik_max_word

其中ik_smart为最少切分,ik_max_word为最细粒度划分

2.2、安装ik分词器

进入已经启动成功的elasticsearch容器。

  • docker exec -it elasticsearch /bin/bash
在这里插入图片描述
  • ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
在这里插入图片描述

下载过程中会出现这个问题,直接输入y回车就可以了。

在这里插入图片描述

下载完成之后,退出去,重新启动elasticsearch容器。

  • docker restart elasticsearch # <容器名o容器id> 重启容器命令
在这里插入图片描述

2.3、测试IK分词器是否安装成功

安装完成后,我们再来进行测试遍,看看有什么样的变化。

postman post请求分词测试:http://服务器IP地址:9200/_analyze

  • {
  • "tokenizer":"ik_smart",// 分词器不同,这个地方也会有变化 具体的可能还需要去学习。
  • "text":"我爱技术"
  • }
在这里插入图片描述

结果:

  • {
  • "tokens": [
  • {
  • "token": "我",
  • "start_offset": 0,
  • "end_offset": 1,
  • "type": "CN_CHAR",
  • "position": 0
  • },
  • {
  • "token": "爱",
  • "start_offset": 1,
  • "end_offset": 2,
  • "type": "CN_CHAR",
  • "position": 1
  • },
  • {
  • "token": "技术",
  • "start_offset": 2,
  • "end_offset": 4,
  • "type": "CN_WORD",
  • "position": 2
  • }
  • ]
  • }

三、安装Elasticsearch可视化工具 | mobz/elasticsearch-head:5

Elasticsearch可视化工具有多种,可以根据自己的喜好进行选择,我这里使用的是mobz/elasticsearch-head:5而已。

3.1、拉取镜像

  • docker pull mobz/elasticsearch-head:5
在这里插入图片描述

3.2、启动镜像

  • docker run -d --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
在这里插入图片描述

3.3、测试

我们在浏览器访问:http://服务器IP:9100/

在这里插入图片描述

3.4、可能出现的问题

elasticsearch配置文件elasticsearch.yml中 缺少了下列跨域配置。

  • http.cors.enabled: true
  • http.cors.allow-origin: "*"

🌈

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门