docker安装elasticsearch8.5.0和kibana

news/2024/6/3 18:20:55 标签: docker, elasticsearch, 容器

服务器环境,centos7

一、安装elasticsearch

1. 创建一个es和kibana通用的网络

docker network create es-net

2. 拉取es镜像,这里选择8.5.0版本

docker pull  elasticsearch:8.5.0

3. 创建挂载目录,并授权

mkdir /usr/local/install/elasticsearch/data
chmod 777 /usr/local/install/elasticsearch/data/

mkdir /usr/local/install/elasticsearch/plugins
chmod 777 /usr/local/install/elasticsearch/plugins/

4. 通过docker运行es

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/install/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/install/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.5.0

5. es正常启动后,通过 docker ps 命令即可看到对应的容器正常启动运行。

注意,此时es默认是需要通过https  用户名密码登录访问的。所以必须通过https://IP:9200 访问。

6. 使用http访问,需要进入容器修改 elasticsearch.yml配置文件,

把其中 xpack.security.enabled: false   改为false即可。默认为true。

# 使用root用户进去才能改
docker exec -it  --user root es /bin/bash
cd config
vi elasticsearch.yml

7.  重启es (docker restart es),  浏览器直接访问 http://IP:9200,   结果如下即可。 

问题:

一、 第6点中需要进入容器修改配置文件,容器中没有vim命令,需要安装。

       有两点需要注意:

       1. 需要用root用户进入容器,不然会提示没有权限!

docker exec -it  --user root es /bin/bash

       提示没有权限如下图:

               

   2.  安装vim命令

apt-get update
apt-get install vim 

二、安装kibana

1.  拉取kibana镜像  

docker pull kibana:8.5.0

2. 通过docker运行kibana

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.5.0

3. 访问kibana,   http://IP:5601, 成功如下

4. 测试es ,  进入Dev tools

三、安装分词器

1.  ES自带的标准分词器(standard)对中文分词不太友好。

GET /_analyze
{
  "analyzer" : "standard",
  "text" : "分词器分词效果测试"
}

2、安装IK分词器

# 进入es容器
docker exec -it es /bin/bash
# 安装对应8.5.0版本的分词器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.5.0/elasticsearch-analysis-ik-8.5.0.zip
# 重启es容器使其生效
exit;
docker restart es

3.测试IK分词器的两种模式  ik_max_wordik_smart

GET /_analyze
{
  "analyzer" : "ik_max_word",
  "text" : "分词器分词效果测试"
}


GET /_analyze
{
  "analyzer" : "ik_smart",
  "text" : "分词器分词效果测试"
}

ik_max_word 和 ik_smart 的区别
ik_max_word: 会将文本做最细粒度的拆分,会穷尽各种可能的组合,适合 Term Query。好处是搜索到的概率可能较高,缺点是分的词多了,占用内存空间会更多;
ik_smart: 会做最粗粒度的拆分,适合 Phrase 查询。好处是分的词少了,将来查询更多的数据效率会更高一点,缺点是搜索到的概率可能较低。
所以,在这两种方式的选择上,需要在内存占用、查询效率、搜索到的概率等方面进行考虑。


http://www.niftyadmin.cn/n/5246995.html

相关文章

安卓NDK开发——常用数据std::string、jstring、cv::Mat、Bitmap互转

前言 在 Android NDK开发中,JNI可以在 Java 和本地代码(如 C、C)之间进行通信。JNI 提供了在 Android 应用中调用本地(C/C)代码的能力,并允许本地代码与 Java 代码相互交互。下面是在安卓上实现OCR时用到的…

Spring 依赖注入的三种方式优缺点

小王学习录 前言属性注入1. 属性注入的优点2. 属性注入的缺点 Setter注入Setter注入的优点Setter注入的缺点 构造方法注入1. 构造方法的优点 总结补充Aurowired注解和Resource注解的区别 前言 在前面的文章中介绍了基于注解的方式将Bean存储到Spring中, 接下来介绍如何基于注解…

构造,析构,拷贝构造

1. 类的6个默认的成员变量 如果一个类中什么成员都没有,简称为空类,空类中什么都没有?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。 注意:这里的“默认”和“缺省”的意思差不多,也就是你不写这6个函数&#…

Spring Boot 框架能够解决什么问题?

Spring Boot 是基于 Spring 框架的一个子项目,它旨在简化 Java 开发中的配置和部署过程,提供一种快速、敏捷的开发方式。Spring Boot 的设计理念是约定优于配置,通过默认配置和自动化,使得开发者能够更专注于业务逻辑的实现&#…

低代码:美味膳食或垃圾食品?

一、什么是低代码 低代码开发是一种软件开发方法,旨在通过最小化手动编码的需求,使应用程序的开发变得更加快速和简单。它通常涉及使用图形界面和可视化工具,而不是传统的编码方法,以减少开发过程中的繁琐步骤。 二、低代码的优…

golang https server如何设计方便抓包定位且安全

代码 测试 用go写后端https服务时,需要定位https包中的内容是否符合预期。 有涉猎的朋友应该了解过https有一种keylog技术,它允许在HTTPS连接中捕获和记录SSL或TLS会话密钥,以便于调试和分析加密流量。 本文将的就是通过可控制开启和关闭的keylog功能,提供安全便捷的调试…

Facebook引流脚本的优势与编写教程!

在当今的数字化时代,社交媒体已经成为企业进行营销和推广的重要渠道之一,Facebook作为全球最大的社交媒体平台之一,拥有数十亿的用户,为企业提供了无限的引流可能性。 然而,对于企业来说,在Facebook上吸引…

模块一:双指针——1089.复写零

文章目录 题目解析算法原理异地原地 代码实现 题目解析 题目链接:1089.复写零 这题的暴力解法还是很简单的,不过这道题因为加了两个限制之后,多了一些细节需要去处理。我们通过一个例子来讲解这道题目: 在这个示例中&#xff0…