当前位置: 首页 > news >正文

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文件停用词

相关文章:

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

Docker安装部署ElasticsearchKibanaIK分词器 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器&#xff0c;启动&#xff01; Docker安装部署Kibana拉取镜像Kibana容器&#xff0c;启动&#xff01; 安装IK分词器安装方式一&#xff1a;直接从github上…...

PCL setCameraPosition 参数讲解

setCameraPosition 的原型如下void setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_x, double up_y, double up_z, int viewport 0);pos_x pos_y pos_z为相机所在的位置view_x view_y view_z 是焦点所…...

有关YOLOV5在测试时,图片大小被调整的问题

执行detect.py文件&#xff0c;在运行栏中出现以下&#xff1a; detect: weightsyolov5s.pt, sourcedata\images, datadata\coco128.yaml, imgsz[640, 640], conf_thres0.25, iou_thres0.45, max_det1000, device, view_imgFalse, save_txtFalse, save_confFalse, save_cropFa…...

【机器学习】四、计算学习理论

1 基础知识 计算学习理论&#xff08;computational learning theory&#xff09;&#xff1a;关于通过“计算”来进行“学习”的理论&#xff0c;即关于机器学习的理论基础&#xff0c;其目的是分析学习任务的困难本质&#xff0c;为学习算法体统理论保证&#xff0c;并根据结…...

spring解决后端显示时区的问题

spring解决后端显示时区的问题 出现的问题&#xff1a; 数据库中的数据&#xff1a; 解决方法 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: Asia/Shanghai...

大模型冷思考:企业“可控”价值创造空间还有多少?

文 | 智能相对论 作者 | 叶远风 毫无疑问&#xff0c;大模型热潮正一浪高过一浪。 在发展进程上&#xff0c;从最开始的技术比拼到现在已开始全面强调商业价值变现&#xff0c;百度、科大讯飞等厂商都喊出类似“不能落地的大模型没有意义”等口号。 在模型类型上&#xff0…...

ctfshow-web入门37-52

include($c);表达式包含并运行指定文件。 使用data伪协议 ?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg 是<?php system(cat flag.php);?> base64加密 源代码查看得到flag 38 多禁用了ph…...

前端项目部署后,需要刷新页面才能看到更新内容

问题背景 前端项目部署更新后&#xff0c;通知业务验证&#xff0c;业务点击收藏的标签&#xff0c;打开网页后没有看到修改的内容&#xff0c;每次都需要手动刷新&#xff0c;用户体验非常不好。 问题原因&#xff1a;缓存未过期&#xff0c;浏览器直接读取本地缓存&#xf…...

android 13 write javaBean error at *** 错误

报错代码&#xff1a;红框处。 注意&#xff1a;android10 不会报错&#xff0c;运行正常。android13就报错 错误原因&#xff1a;对象中VerifyDownloadEntity&#xff0c;有个Bitmap成员变量 public class VerifyDownloadEntity {private Bitmap bitmap;private String cooki…...

Only fullscreen opaque activities can request orientation

出现Only fullscreen opaque activities can request orientation是谷歌爸爸在安卓8.0版本时为了支持全面屏&#xff0c;增加了一个限制&#xff1a;如果是透明的Activity&#xff0c;则不能固定它的方向&#xff0c;因为它的方向其实是依赖其父Activity的&#xff08;因为透明…...

前端实验(一)单页面应用的创建

实验目的 掌握使用vite创建vue3单页面程序命令熟悉所创建程序的组织结构熟悉单页面程序运行原理能够编写简单的单页面程序 实验内容 创建一个名为vue-demo的单页面程序编写简单的单页面程序页面运行单页面程序 实验步骤 使用vite创建单页面程序 创建项目名为目录vue-demo的…...

数字人小灿:始于火山语音,发于 B 端百业

火爆的数字人市场又有新消息来袭&#xff1a;火山语音的数字人小灿来了&#xff01; 数字人小灿首曝视频 今年以来&#xff0c;在生成式AI浪潮的助推下&#xff0c;大量企业争相布局数字人赛道。市场之所以如此火热&#xff0c;是因为AI数字人已被视为人工智能时代智能交互的入…...

蓝桥杯刷题

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; &#x1f449;&#x1f3fb;最大降雨量 原题链接&#xff1…...

Go Metrics SDK Tag 校验性能优化实践

背景 Metrics SDK 是与字节内场时序数据库 ByteTSD 配套的用户指标打点 SDK&#xff0c;在字节内数十万服务中集成&#xff0c;应用广泛&#xff0c;因此 SDK 的性能优化是个重要和持续性的话题。本文主要以 Go Metrics SDK 为例&#xff0c;讲述对打点 API 的 hot-path 优化的…...

二叉树问题——前/中/后/层遍历问题(递归与栈)

摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 103. 二叉树的锯齿形层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前…...

Vue3问题:如何实现级联菜单的数据懒加载?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约3100字&#xff0c;整篇阅读大约需要5分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …...

STM32-电源管理(实现低功耗)

电源管理 STM32 HAL库对电源管理提供了完善的函数和命令。 工作模式&#xff08;高功耗->低功耗&#xff09;&#xff1a;运行、睡眠、停止、待机。 若备份域电源正常供电&#xff0c;备份域内的RTC都可以正常运行&#xff0c;备份域内的寄存器的数据会被保存&#xff0c;不…...

vue 自己捣鼓周日程日历组件

需求:想要一个周日程表,记录每天的计划,点击可查看详情。可自定义时间段通过后台获取时间段显示 分析: 通过需求,超级课程表app这款软件其中课表和这个需求很像,只不过这个需求第一列的时间段是自定义的,不是上午下午两个,但是原理都差不多 原本想找一些第三方插件使…...

【力扣】2127. (分类讨论 + 拓扑排序)参加会议的最多员工数

【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数 文章目录 【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数1. 题目介绍2. 思路&#xff08;**分类讨论 拓扑排序**&#xff09;3. 解题代码4. Danger参考 1. 题…...

Flutter——最详细(Map)使用教程

Map简介 键值对的集合&#xff0c;您可以使用其关联的键从中检索值。 普通的 HashMap是无序的&#xff08;不保证顺序&#xff09;&#xff0c;LinkedHashMap 按键插入顺序迭代&#xff0c;而像 SplayTreeMap 这样的排序映射按排序顺序迭代键。 1&#xff0c;添加元素 addEntri…...

小小屠龙原始火龙手游官网下载:小小屠龙原始火龙最新官方下载渠道

《小小屠龙原始火龙》又名《赤血火龙单职业》《龙城秘境移动版》&#xff0c;是由安徽游昕联合忆往游戏运营的正版 1.80 火龙复刻 MMORPG 手游。1:1 复刻比奇、盟重土城、祖玛寺庙、赤月峡谷、火龙神殿等经典场景&#xff0c;创新融合战法道三职业核心能力的单职业体系&#xf…...

别再折腾VMware Tools了!用FileZilla+SSH搞定Windows与Ubuntu虚拟机文件互传(保姆级教程)

告别VMware Tools烦恼&#xff1a;SSHFileZilla实现跨平台文件传输全攻略 每次在Windows和Ubuntu虚拟机之间传输文件时&#xff0c;VMware Tools总是给你带来各种麻烦&#xff1f;安装失败、兼容性问题、功能受限...这些问题我都经历过。今天我要分享的是一种更稳定、更通用的…...

JMeter精准1QPS压测:从CTT原理到Groovy高精度定时器实现

1. 这不是“设个线程数”就能搞定的事&#xff1a;为什么1秒1次请求在JMeter里反而最难稳很多人第一次做压测&#xff0c;看到需求“每秒发送1次请求”&#xff0c;第一反应是&#xff1a;“简单&#xff0c;开1个线程&#xff0c;Ramp-up时间设为0&#xff0c;循环次数设成100…...

Atomic Layout测试策略:单元测试与集成测试最佳实践

Atomic Layout测试策略&#xff1a;单元测试与集成测试最佳实践 【免费下载链接】atomic-layout Build declarative, responsive layouts in React using CSS Grid. 项目地址: https://gitcode.com/gh_mirrors/at/atomic-layout 在现代前端开发中&#xff0c;构建可靠的…...

深度学习结合CT图像预测岩石渗透率:从孔隙网络到升尺度计算

1. 项目概述&#xff1a;当深度学习遇见岩石CT图像 在油气勘探、地热开发乃至二氧化碳地质封存这些领域&#xff0c;我们这些从业者最头疼的问题之一&#xff0c;就是如何准确知道一块岩石的“透水能力”&#xff0c;也就是渗透率。传统上&#xff0c;我们依赖实验室岩心驱替实…...

卡梅德生物技术快报|蛋白的过表达质粒构建与生信分析实验全流程复盘

从事分子生物学实验的科研从业者&#xff0c;在开展功能蛋白研究时&#xff0c;蛋白的过表达质粒构建与诱导表达是必备核心技能。实操过程中&#xff0c;很多人会忽略前期生信分析的重要性&#xff0c;盲目设计引物、构建载体&#xff0c;导致蛋白的过表达失败、蛋白无活性、纯…...

突破索尼相机数字枷锁:Sony-PMCA-RE逆向工程技术深度解析

突破索尼相机数字枷锁&#xff1a;Sony-PMCA-RE逆向工程技术深度解析 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE 在数码摄影领域&#xff0c;索尼相机以其卓越的成像技术和创新…...

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数

UE5 StateTree数据通信详解&#xff1a;告别黑板&#xff0c;在Task与Evaluator间高效传递参数当你在UE5中构建一个拥有复杂行为的AI角色时&#xff0c;数据如何在各个行为模块间高效传递是一个无法回避的核心问题。传统的"黑板"系统虽然广为人知&#xff0c;但在Sta…...

物理生物学研究报告【20260015】

文章目录抛球入框实验报告一、实验目的二、实验装置三、实验方法四、实验结果4.1 无弹跳实验&#xff08;A组&#xff09;4.2 允许弹跳实验&#xff08;B组&#xff09;五、分析与讨论5.1 无弹跳与弹跳的参数差异5.2 恢复系数的影响5.3 误差来源六、结论七、致谢抛球入框实验报…...

AgentScope Java 入门:Tool 工具系统——让 Agent 真正“动手做事“

在前面的模型集成系列中,我们详细介绍了如何让 AgentScope Java 接入各类大语言模型——这相当于为 Agent 装上了"大脑"。但只有大脑还不够,本篇我们将聚焦 Agent 的另一关键能力:Tool(工具)系统——也就是 Agent 的"手脚"。 如果把大语言模型比作 A…...