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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 史上最详细Docker安装Elasticsearch、ik分词器、可视化工具,每一步都带有步骤图!!!

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

对于标题我没有夸大哈,能成功的,每一步也有代码和图相结合的 最近在弄这个Elasticsearch,技术发展所要求,现在还有什么我不需要去学吗?麻了麻了。 沉下去,再浮上来,我想我们会变的不一样的。😁

关于封面:好看的人拍的好看的图

作者:笨小孩.

一、Docker安装Elasticsearch

1.1、拉取Elasticsearch镜像

docker pull elasticsearch:7.7.0

1704466541096.jpg

查看镜像命令:docker images

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

1704466548921.jpg

1.2、启动前准备

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

mkdir -p  /home/elasticsearch/data/ 
mkdir -p  /home/elasticsearch/config/

1704466556292.jpg

解释

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

编写配置文件

echo 'http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml

1704466564077.jpg

解释

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

修改文件夹权限

chmod -R 777 /home/elasticsearch/
ls -l # 查看文件权限

1704466571652.jpg

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

运行结果

1704466589927.jpg

查看是否启动成功

1704466596994.jpg

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

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

1704466605597.jpg

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分词器?

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

1704466615018.jpg

结果

{
    "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

1704466624314.jpg

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

1704466632482.jpg

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

1704466639913.jpg

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

docker restart <容器名o容器id>  # 重启容器命令

1704466647689.jpg

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

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

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

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

1704466654075.jpg

结果:

{
    "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

1704466662004.jpg

3.2、启动镜像

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

1704466672437.jpg

3.3、测试

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

1704466678929.jpg

3.4、可能出现的问题

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

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

🌈自言自语

下一篇写如何搭建elasticsearch集群,咱们一步一步来哈😁。

你好,我是博主宁在春,Java学习路上的一颗小小的种子,也希望有一天能扎根长成苍天大树。

最近在持续更新中,如果你觉得文章对你有所帮助,也感兴趣的话,关注我吧。

让我们一起学习,一起讨论吧。

希望与君共勉😁

我们:待别时相见时,都已有所成

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
140 5
|
5月前
|
Ubuntu 安全 Docker
Ubuntu Server上安装配置Docker的详细步骤
如果一切设置正确,这将下载一个测试镜像,并在容器中运行它,打印一条问候消息。
646 76
|
6月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
474 12
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
262 5
|
7月前
|
算法 Shell 定位技术
在Docker环境下搭建openvslam/orb_slam3的步骤和问题总结
总的来说,搭建openvslam或orb_slam3的过程需要一些耐心和技术知识,但只要你遵循上述步骤,并且在遇到问题时进行适当的调试,你应该能够成功搭建并运行openvslam或orb_slam3。
291 11
|
自然语言处理 Java 网络架构
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
这篇文章是关于如何自定义Elasticsearch的ik分词器配置以满足特定的中文分词需求。
649 0
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
|
9月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
381 16
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
841 60
|
12月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
657 24
|
11月前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
384 7

热门文章

最新文章