Docker安装部署Elasticsearch+Kibana+IK分词器

Docker安装部署Elasticsearch+Kibana+IK分词器

  • Docker安装部署elasticsearch
    • 拉取镜像
    • 创建数据卷
    • 创建网络
    • elasticsearch容器,启动!
  • Docker安装部署Kibana
    • 拉取镜像
    • Kibana容器,启动!
  • 安装IK分词器
    • 安装方式一:直接从github上下载
    • 安装方式二
    • 词典扩展与停用

Docker安装部署elasticsearch

目前elastic官网推荐使用的两个版本分别是:

  • 8.10.2
  • 7.17.13

我尝试安装8.x版本的,不过似乎由于虚拟机内存大小的原因集群状态总是转为RED无法重置elastic账户的密码,因此我最终选择使用7.x版本的elasticsearch,8.x版本的默认使用https来保证数据的安全性,感兴趣的同学可以自行尝试。

由于IK分词器对于7.x版本最高只有7.17.6版本与之对应,所以下载7.17.6版本的elasticsearch

拉取镜像

docker pull elasticsearch:7.17.6

创建数据卷

一般来说,我们不希望在elasticsearch容器停止时丢失elasticsearch中的文件,因此我们创建一个数据卷来关联elasticsearch的data文件夹。在elasticsearch的使用中我们可能会安装各种插件,因此创建了另一个数据卷来关联elasticsearch的plugins文件夹

docker volume create es-data
docker volume create es-plugins

创建网络

一般来说,我们在使用elasticsearch的时候会结合kibana一起使用,为了他们能够正常关联,我们创建一个网络来连接他们

docker net create es-net

elasticsearch容器,启动!

ES_JAVA_OPTS是在设置堆大小,我修改这个环境变量主要是因为我虚拟机的内存有限,硬件允许的可以忽略

因为我是单机启动,所以将discovery.type设置为single-node

es-net为上一步我们创建的网络名

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

访问9200端口,如果浏览器中出现这串json就证明elasticsearch启动成功了

{"name": "ab675a286e72","cluster_name": "docker-cluster","cluster_uuid": "ZdLfD65lQdKStAJi1yWMMQ","version": {"number": "7.17.13","build_flavor": "default","build_type": "docker","build_hash": "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13","build_date": "2023-08-31T17:33:19.958690787Z","build_snapshot": false,"lucene_version": "8.11.1","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search"
}

Docker安装部署Kibana

Kibana 是为 Elasticsearch设计的开源分析和可视化平台

拉取镜像

docker pull kibana:7.17.6

Kibana容器,启动!

ELASTICSEARCH_HOSTS环境变量为elasticsearch服务的地址,其中http://es:9200中的es是我们运行elasticsearch容器时起的别名

es-net为我们在之前创建的网络的名称

docker run \
-d \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:7.17.6

Kibana的启动比较慢,一段时间以后访问5601端口如果能正常进入控制台界面则证明Kibana部署成功

安装IK分词器

elasticsearch默认的分词器对于中文分词不友好

标准分词器分词:

POST /_analyze
{"text": "elasticsearch 8.x版本太难啦!", "analyzer": "standard"
}
{"tokens" : [{"token" : "elasticsearch","start_offset" : 0,"end_offset" : 13,"type" : "<ALPHANUM>","position" : 0},{"token" : "8","start_offset" : 14,"end_offset" : 15,"type" : "<NUM>","position" : 1},{"token" : "x","start_offset" : 16,"end_offset" : 17,"type" : "<ALPHANUM>","position" : 2},{"token" : "版","start_offset" : 17,"end_offset" : 18,"type" : "<IDEOGRAPHIC>","position" : 3},{"token" : "本","start_offset" : 18,"end_offset" : 19,"type" : "<IDEOGRAPHIC>","position" : 4},{"token" : "太","start_offset" : 19,"end_offset" : 20,"type" : "<IDEOGRAPHIC>","position" : 5},{"token" : "难","start_offset" : 20,"end_offset" : 21,"type" : "<IDEOGRAPHIC>","position" : 6},{"token" : "啦","start_offset" : 21,"end_offset" : 22,"type" : "<IDEOGRAPHIC>","position" : 7}]
}

可以看到默认分词器对英文分词效果还不错,但对于中文分词不太友好。

我们再来实施ik分词器

POST /_analyze
{"text": "elasticsearch 8.x版本太难啦!", "analyzer": "ik_smart"
}
{"tokens" : [{"token" : "elasticsearch","start_offset" : 0,"end_offset" : 13,"type" : "ENGLISH","position" : 0},{"token" : "8.x","start_offset" : 14,"end_offset" : 17,"type" : "LETTER","position" : 1},{"token" : "版本","start_offset" : 17,"end_offset" : 19,"type" : "CN_WORD","position" : 2},{"token" : "太难","start_offset" : 19,"end_offset" : 21,"type" : "CN_WORD","position" : 3},{"token" : "啦","start_offset" : 21,"end_offset" : 22,"type" : "CN_CHAR","position" : 4}]
}

可以看到ik分词器对与中文分词十分友好。接下来我们就安装ik分词器

安装方式一:直接从github上下载

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

安装方式二

之前我们将es-plugins数据卷挂载到了es容器内的plugins文件夹。

我们先使用魔法从github上下载

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip

然后将压缩包解压到数据卷对应的位置,然后重启elasticsearch容器即可。

词典扩展与停用

  • 创建ext.dit文件添加扩展词
  • 创建stopword.dic文件停用词

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Go中处理时间数据

获取时间 这可能是软件包中最常用的方法。我们如何知道当前的时间呢&#xff1f;像这样&#xff1a; t : time.Now() fmt.Println(t)ini复制代码2023-04-16 23:54:45.924965 0800 CST m0.000152293这就是当前的时间。这是很麻烦的&#xff0c;所以我将把它分解成几个部分。 …

赶紧收藏!史上最全IDEA快捷键大全

参考 IntelliJ IDEA 的官网&#xff0c;列举出了IntelliJ IDEA&#xff08;Windows 版&#xff09;的所有快捷键。 建议收藏&#xff0c;有需要的时候根据关键字来查找&#xff01; idea专业版获取 kdocs.cn/l/ctYoaM6evJkl 该快捷键共分 16 类&#xff0c;可以方便的按各类…

【Linux】虚拟机安装Linux、客户端工具,MobaXterm的使用,Linux常用命令

目录 一&#xff0c;安装Linux的centos7版本 具体安装步骤&#xff1a; 二&#xff0c;Linux常见的命令&#xff1a; 三、安装客户端工具 1、介绍 2、安装MobaXterm 3、换源 四、拍照功能 一&#xff0c;安装Linux的centos7版本 介绍&#xff1a; 具体安装步骤&#…

主定理(一般式)

主定理&#xff08;Master Theorem&#xff09;是用于分析递归算法时间复杂度的一个重要工具。它适用于形式化定义的一类递归关系&#xff0c;通常采用分治策略解决问题的情况。 目录 主定理简化版的局限主定理一般形式情况1&#xff1a; n l o g b a n^{log_{b}{a}} nlogb​a …

No174.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

阿里云服务linux系统CentOs8.5安装/卸载nginx1.15.9

说明&#xff1a;尝试使用CentOs8.5安装nginx1.9.9失败&#xff0c;make的时候报错了&#xff0c;后面降低版本为CentOs7.5安装成功了&#xff0c;参考文章:【精选】centos7安装nginx-1.9.9_linx centos nginx 1.9.9版本 nginx error log file: "/-CSDN博客 一、安装ngin…

学习ftp

文章目录 一、FTP介绍二、两种模式&#xff08;主动模式和被动模式&#xff09;三、FTP配置文件详解四、实际场景举例五、黑白名单六、网络限制 一、FTP介绍 1.FTP&#xff08;File Transfer Protocol&#xff09;是一种应用广泛且古老的互联网文件传输协议。 2.主要应用于互联…

python检测序列中的元素是否满足严格升序关系

方法1 def lessThan1(seq):for index, value in enumerate(seq[:-1]):if value > seq[index1]:return Falsereturn True方法2 def lessThan2(seq):func lambda x, y: x < yreturn all(map(func, seq[:-1], seq[1:]))方法3 from operator import ltdef lessThan3(seq)…

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】 课本里章节里所有蓝色字体的思维导图

【Flutter】Flutter 中的图片管理 图片优化的最佳实践

【Flutter】Flutter 中的图片管理 图片优化的最佳实践 文章目录 一、前言二、图片资源的重要性1. 对于项目复杂性的影响2. 性能和资源优化3. 国际化和多平台支持4. UI/UX 的角度看图片管理5. 图片资源与应用安全三、Flutter 中的图片资源分类1. Asset 图片2. 网络图片3. 本地文…

java项目之时间管理系统(ssm框架)

项目简介 时间管理系统实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、用户管理、分类列表管理、在线学习管理、励志视频管理、活动项目管理、活动报名管理、目标制定管理、论坛管理、系统管理。用户&#xff1a;注册、个人中心、活动报名管理、目标制定管理、我的…

javaEE -10(11000字详解5层重要协议)

一&#xff1a;应用层重点协议 1.1&#xff1a; DNS DNS&#xff0c;即Domain Name System&#xff0c;域名系统。DNS是一整套从域名映射到IP的系统。 TCP/IP中使用IP地址来确定网络上的一台主机&#xff0c;但是IP地址不方便记忆&#xff0c;且不能表达地址组织信息&#x…

mac git ssh

1.作用 1.不用账号密码拉取git项目 2.使用 1.检查是否生成ssh的公钥和私钥 命令&#xff1a; cd ~/.ssh表示没有 No such file or directory 2.如果没有就生成公钥和私钥 ssh-keygen -t rsa -C "帅哥***.com"后面的是git邮箱地址 然后一直按enter&#xff0c;…

二叉树问题——对称二叉树

摘要 101. 对称二叉树 一、对称二叉树解析 1.1 递归思路分析 首先想清楚&#xff0c;判断对称二叉树要比较的是哪两个节点&#xff0c;要比较的可不是左右节点&#xff01;对于二叉树是否对称&#xff0c;要比较的是根节点的左子树与右子树是不是相互翻转的&#xff0c;理解…

Java基于SpringBoot+Vue的网上图书商城管理系统(附源码,教程)

文章目录 1. 简介2 技术栈3 系统功能4系统设计4.1数据库设计 5系统详细设计5.1系统功能模块5.1系统功能模块5.2管理员功能模块 源码下载地址 1. 简介 本次设计任务是要设计一个网上图书商城&#xff0c;通过这个系统能够满足网上图书商城的管理功能。系统的主要功能包括首页、…

进程(2)——进程状态(僵尸,睡眠……)【linux】

进程&#xff08;2&#xff09;——进程状态&#xff08;僵尸&#xff0c;睡眠……&#xff09;【linux】 一.操作系统的进程状态&#xff1a;1.1 运行态1.2 阻塞态1.3 挂起态 二.linux进程状态2.1 R——运行状态2.2 S——浅度睡眠状态2.3 D——&#xff08;disk sleep&#xf…

Shell 脚本学习 day01

release node v1 初始版本 #定义备份目录#当前时间#检查备份目录是否存在&#xff0c;不存在需要创建# 查找并备份 .xxx 文件# 提取文件名&#xff08;不包含路径部分&#xff09;# 构建备份文件名# 将查出来的.xxx文件拷贝到备份目录#!/bin/bash # context 备份根目录下所有.…

iOS调试技巧——使用Python 自定义LLDB

一、类介绍 在使用Python 自定义LLDB之前&#xff0c;先了解一下LLDB的一些类型 SBTarget 正在被调试的程序SBProcess 和程序关联的具体的进程SBThread 执行的线程SBFrame 和线程关联的一个栈帧SBVariable 变量&#xff0c;寄存器或是一个表达式 一般情况下&#xff0c;我们…

D-LINK SQL注入漏洞让攻击者获得管理员权限

D-Link DAR-7000 设备中发现了一个名为 SQL 注入的安全漏洞。 SQL注入是一种恶意攻击&#xff0c;它利用Web应用程序中的漏洞注入恶意SQL语句并获得对数据库的未经授权的访问。 此技术允许攻击者查看、修改和删除数据库中的数据&#xff0c;这可能对数据的机密性、完整性和可…

Linux下进程地址空间初步理解

进程地址空间 进程地址空间是操作系统为每个进程分配的一块内存空间&#xff0c;用于存储进程的代码、数据和堆栈等信息。进程地址空间是逻辑上独立而相互隔离的&#xff0c;每个进程拥有自己独立的地址空间&#xff0c;进程之间不能直接访问彼此的地址空间。 代码段&#xff…