Docker安装ElasticSearch,并进行ik和hanlp分词

news2025/6/8 11:42:32

我按装的目标: 利用ElastiSearch存储数据,ik和hanlp分词插件 对 搜索词进行分词,在ES存储的库中找到与搜索词相近的内容。
安装感受: 原始环境安装老版本的ES,BUG不断,ES相关解答博客对新手有点不友好,完整的解释不多,😭 也许是我比较菜。

ElasticSearch是什么?
答:ES是分布式的搜索和分析引擎。
ElasticSearch有什么作用?
答: ES 为所有类型的数据提供近乎实时的搜索和分析。ES可以高效存储结构和非结构化数据;ES可以用简单的数据检索和聚合信息;随着数据的查询量和数据量存储的增涨,ES的分布式特性可以解决对应问题。
Elasticsearch的适用场景?
答:(1)维基百科,类似百度百科全文检索,搜索推荐
       (2)搜狐新闻,用户行为日志(点击,浏览,收藏,评论)
       (3)商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如说订阅牙膏的监控,如果高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买)
还有很多

一、安装说明

1、ElasticSearch单机安装;
2、IK分词器和hanlp分词器安装;
3、Kibana安装; (操作ES的时,可视化界面。ps: 一开始安装时候,很多博客都默认知道Kibana,导致我当时看演示案例时,一脸懵逼)

二、Docker安装ElasticSearch

当前ElasticSearch版本已经更新到了8.0,版本越高,对应性能和功能都有大幅提升。我要用到hanlp,所以我这里采用7.10.1版本。

2.1 ElasticSearch安装

友情提示:先查看系统存储占比情况,如果是下图占比达到了90%以上,建议删掉不必要内容降低占比,或者直接换一台机子。因为ES占比要求是不超过90%,否则无法进行。
在这里插入图片描述

第一步:修改vm.max_map_count:(这里是修改本机的内容)

# 编辑sysctl.conf
vi /etc/sysctl.conf
#最后一行修改或新增下面命令
vm.max_map_count = 262144
#立即生效
sysctl -p

vm.max_map_count解释:设置虚拟内存大小,供程序运行时产生的临时数据存储。
第二步:挂载目录

# 创建目录(自定义存储目录)
mkdir /mydata/elasticsearch/data/ -p
# 创建目录(自定义存储目录)
mkdir /mydata/elasticsearch/plugins/ -p
 
# 设置目录权限
chmod 777 /mydata/elasticsearch/data
chmod 777 /mydata/elasticsearch/plugins

第三步: ElasticSearch安装
(1)拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.1

(2)建立容器

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

命令说明:

  • -e "cluster.name=elasticsearch":设置集群名称
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins :挂载逻辑卷,绑定elasticsearch的数据目录
  • -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定elasticsearch的插件目录
  • privileged:授予逻辑卷访问权
  • -p 9200:9200:端口映射配置

2.2 ElasticSearch安装成功检验

      在浏览器中输入:http://服务器地址:9200/(我自己定义端口是8110,按上面来你们是9200) 即可看到elasticsearch的响应结果:
在这里插入图片描述

三、安装Kibana

      可以基于Http请求操作ElasticSearch,但基于Http操作比较麻烦,我们可以采用Kibana实现可视化操作。

3.1 Kibana安装

安装命令如下:

docker run  -d \
--name kibana \
--link=elasticsearch:elasticsearch \
-p 5601:5601 \
-d kibana:7.10.1

命令说明:

  • --link=elasticsearch:elasticsearch设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch,也可以写IP地址实现访问。
  • -p 5601:5601:端口映射配置

3.2 Kibana安装成功检验

访问http://服务器IP:5601效果如下:
在这里插入图片描述点击Add data 就能进入使用页面了:
在这里插入图片描述

3.3 Kibana中文配置

我们发现Kibana是英文面板,看起来不是很方便,但Kibana是支持中文配置,所以我们可以把Kibana配置成中文版,便于我们操作。
切换中文操作如下:

#进入容器
docker exec -it kibana /bin/bash

#进入配置文件目录
cd /usr/share/kibana/config

#编辑文件kibana.yml
vi kibana.yml

#在最后一行添加如下配置
i18n.locale: zh-CN

#保存退出
exit

#并重启容器
docker restart kibana

等待Kibana容器启动,再次访问http://服务器IP:5601效果如下:
在这里插入图片描述

在这里插入图片描述

四、安装IK分词器和hanlp分词器

4.1 IK分词器和hanlp分词器插件安装

# 1.下载ik安装包到本地服务器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip

# 2.将ik安装包转移到 elastic服务器中
docker cp ./elasticsearch-analysis-ik-7.10.1.zip elasticsearch:/usr/share/elasticsearch

# 3.进入elasticsearch容器
docker exec -it elasticsearch bash
# 4.压缩ik安装包
unzip elasticsearch-analysis-ik-7.10.1.zip -d ./plugins/ik/
# 5.再直接安装hanlp分词器
./bin/elasticsearch-plugin install https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.10.1/elasticsearch-analysis-hanlp-7.10.1.zip

查看分词器是否安装成功

./bin/elasticsearch-plugin list

显示如下图,表示安装成功
在这里插入图片描述
退出和重启elasticsearch,再进行下面的测试

# exit退出es容器
exit
# 重启es容器
docker restart elasticsearch

4.2 Ik和hanlp分词测试

在使用Kibana测试 http://你自己服务器ip:5601/app/dev_tools#/console

ik分词测试:
ik分词更多的操作
ik测试结果如下:
**加粗样式**

hanlp分词测试:
hanlp分词更多操作
hanlp测试结果如下:
在这里插入图片描述

参考链接

https://blog.csdn.net/scmagic/article/details/123500533
https://blog.csdn.net/qinghuidu/article/details/107841436
https://blog.csdn.net/LXWalaz1s1s/article/details/111697177
https://blog.csdn.net/weixin_43649997/article/details/106875269

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

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

相关文章

Elasticsearch7.8.0版本进阶——分布式集群(故障转移)

目录一、Elasticsearch集群的安装1.1、Elasticsearch集群的安装(win10环境)1.2、Elasticsearch集群的安装(linux环境)二、故障转移的概述三、故障转移(win10环境集群演示)一、Elasticsearch集群的安装 1.1…

分布式高级篇1 —— 全文检索

Elasticsearch Elasticsearch简介一、基本概念1、index(索引)2、Type(类型)3、Document(文档)4、倒排索引二、Docker 安装 EL1、拉取镜像2、创建实例三、初步探索1、_cat2、索引一个文档(保存)3、查询文档3、更新文档4、删除文档&索引5、_bulk 批量 AP6、样本测试数据四、进…

安全测试的最常用方法你知道多少呢?

安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程,其主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,安全指标不同,测试策略也不同。 但安全是相对的…

【ESP32+freeRTOS学习笔记-(七)中断管理】

目录1、概述2、在ISR中使用FreeRTOS中专用的API2.1 独立的用于ISR中的API2.2 关于xHigherPriorityTaskWoken 参数的初步理解3、延迟中断处理的方法-将中断中的处理推迟到任务中去4 方法一:用二进制信号量来同步ISR与”延时处理的任务“4.1 二进制信号量4.2 函数用法…

高中生用台灯哪种好?2023最好的台灯品牌排行榜

高中生的学习时长是最长的,所以导致现在许多高中生都戴上了眼镜,主要是因为长时间对着书本,没有合理的让眼睛休息,导致眼疲劳,而选择护眼台灯是最好的,台灯内置的护眼技术是非常实用的,可以改善…

SIP协议的一键对讲终端

SIP对讲终端是一款采用了ARMDSP架构,接收网络音频流,实时解码播放;配置了麦克风输入和扬声器输出,作为网络数字广播的播放终端。主要用于银行、部门机构、酒店等场所的网络广播、网络对讲。本产品配置了麦克风和3W扬声器&#xff…

psudohash:一款基于变异机制的密码列表生成工具

关于psudohash psudohash是一款功能强大的密码列表生成工具,该工具基于关键词变异技术实现其功能,并且能够根据常用密码创建模式来生成字典文件。 psudohash可以用于密码爆破任务中,以帮助广大研究人员测试密码的安全性。该工具能够模仿人类…

Spring Security 源码解读:权限控制

本文样例代码地址: spring-security-oauth2.0-client-sample。 关于此章,官网介绍:Authorization 本文使用Spring Boot 2.7.4版本,对应Spring Security 5.7.3版本。 Introduction 认证过程中会一并获得用户权限,Au…

vue-router 源码解析(二)-创建路由匹配对象

文章目录基本使用导语createRouterMatcher 创建匹配路由记录addRoute 递归添加matchercreateRouteRecordMatcher 创建matchertokenizePath 解析pathtokensToParser 记录打分insertMatcher 将matcher排序总结基本使用 const routes [{path:"/",component: Demo2,nam…

爷青回!如果当年大学数据库实训选择了这款SQL工具,结局可能不一样

SQL语言逐渐成为职场人士必备的能力。很多人一直走上职场才了解什么是SQL,而更多人在大学就已经开始学习。 这些人一定对类似《数据库原理与应用》的课程不陌生。还记得你们是怎么熬过这门课的吗? 为什么说“熬”呢?实话说,数据库…

[DiceCTF 2023] rSabin

一点点学习别人的WP,这回看到一个大姥(r3kapig)的帖子,DiceCTF第二名,不过有好多东西一时还理解不了,得慢慢来。题目这个题有3个功能:rsa加密功能,p,q,N未知,e17低加密指数解密,不过…

如何通过极狐GitLab 平滑落地 Java 增量代码规范?

本文来自: 杨周 极狐GitLab 高级解决方案架构师 代码越写越规范是优秀开发者的成长之路,但很多人对老项目感到有心无力,因为太不规范了,所有人停下来一起修复也要花费很长时间,而且一次改动太多难以确保可靠性&#xf…

达梦8的dblink

简介:外部链接对象(LINK)是 DM 中的一种特殊的数据库实体对象,它记录了远程数据库的连接和路径信息,用于建立与远程数据的联系。通过多台数据库主库间的相互通讯,用户可以透明地操作远程数据库的数据&#…

我的网站上线了!

最近有段时间没有写原创文章了,恰好这两天正在翻阅历史文章的时候,发现文章中的图片竟然裂了?顿时冒了一身冷汗,因为每逢遇到这种情况,动辄需要花费一周的时间迁移图片。。。。。。 当我直接访问图片 url 的时候&#…

直播预告 | 数据库自治平台 KAP 监控告警架构及实例演示

线上沙龙-技术流第 25 期营业啦02月15日(周三)19:30KaiwuDB - B站直播间企业级数据集群往往有成百上千的各类型运算或应用同时运行,为保障系统的稳定可靠性,势必需要克服庞大数据量、复杂运算逻辑、相互关联大数据组件等重难点&am…

4年测试经验去面试10分钟就被pass,测试现在要求这么高了?

年过完了,大家都开始上班了,各位小伙伴多多注意身体,但是学习也别落下等 做为一名优秀的程序员,技术面试都是不可避免的一个环节,通常技术面试官都会经过本身的方式去考察程序员的技术功底与基础理论知识。 若是你参…

python基础之PyCharm介绍

课程:PyCharm 课程目标 PyCharm的作用下载安装PyCharmPyCharm的基本使用PyCharm的基本设置 一. PyCharm的作用 PyCharm是一种Python IDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#x…

《Spring揭秘》记录

IOC部分 IOC不等于IOC容器,即使不使用spring,我们也可以使用IOC,只不过spring提供了IOC容器实现。Spring的IoC容器的功能就包含一个提供依赖注入服务的IoC Service Provider。它提供两方面的支持,业务对象的构建管理和业务对象间的…

GAMES202 PCSS软阴影算法细节解析

在LearnOpenGL框架的基础上实现了一遍GAMES202的PCFPCSS软阴影,之前学习GAMES202时一些没弄清楚的问题顺便搞清楚了。 注:本文中代码和shader均在笔者自学LearnOpenGL的框架中实现,因此有一些细节可能和GAMES202作业框架不一致,且…

【前端CSS面试题】2023前端最新版css模块,高频15问

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:博主收集的CSS面试题 目录 一、CSS必备面试题 1.CSS3新特性 2.CSS实现元素两个盒子垂…