当前位置: 首页 > 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…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...