Elasticsearch、ik分词器、elasticsearch-head、Kibana的认识与安装

ops/2024/9/25 6:54:30/

文章目录

elasticsearch_1">elasticsearch

Elasticsearch是一个基于Lucene的搜索服务器,也是属于NoSQL阵营的数据库。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口提供给我们操作的。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。除了es以外, Sphinx 、迅搜、Zebra、Solr 、Whoosh。

官网:https://www.elastic.co/cn/elasticsearch/

中文文档:https://www.elastic.co/guide/cn/index.html

最新版本:8.0 版本。目前在市面上常用的版本是6.x和7.x,甚至是5.x。

elasticsearch_11">安装elasticsearch

支持单点部署和集群部署。

sudo docker run --name elasticsearch --restart=always -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" elasticsearch:7.13.4# podman run --name elasticsearch -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.13.4

参数说明

--name elasticsearch  设置当前容器的容器名称为elasticsearch
--restart=always设置容器开机自启,即便物理机关机重启了,docker在启动以后也会自动帮我们把当前容器启动起来。
-d     设置当前容器为守护式容器,在后台运行
-p 9200:9200设置端口影射,<物理机端口>:<容器端口>表示访问了当前物理机的9200,相当于访问了当前容器的9200端口
-p 9300:9300设置端口影射,<物理机端口>:<容器端口>表示访问了当前物理机的9300,相当于访问了当前容器的9300端口
-e ES_JAVA_OPTS="-Xms256m -Xmx256m"设置环境变量,变量名为ES_JAVA_OPTS,这个变量是启动elasticsearch的关键。表示设置java环境的最小和最大使用内存,内存不足,elasticsearch是无法启动的,所以此处设置为最小内存必须在256M以上
-e "discovery.type=single-node"设置环境变量,变量名discovery.typediscovery.type 表示当前elasticsearch的运作模式为single-node,表示单机部署/单点部署
elasticsearch:7.13.4设置当前容器的镜像名和版本号

浏览器访问:http://127.0.0.1:9200

在这里插入图片描述

要基于es实现全文搜索,可以参考以下文档了解关于全文搜索的内容。

https://www.elastic.co/guide/cn/elasticsearch/guide/current/full-text-search.html

全文搜索的实现,必须依靠es内部调用分词器对语句进行词性分析,拆词,给每一个单词构建一个索引。

所以默认情况下,es只提供了标准分析器,和简单分析器,这几块分词器都是只能针对英文进行分词。

IK中文分词器

默认情况下,elasticsearch是外国开发的,所以本身对于中文分词构建分词索引的支持是不行的。所以我们需要在elasticsearch软件中新增一个支持中文索引和中文分词的插件,叫ik分词器。

注意:IK分词器插件的版本必须与elasticsearch的版本号同步。否则安装失败!

文档:https://github.com/medcl/elasticsearch-analysis-ik/releases

把IK分词器解压并复制到elasticsearch容器的/usr/share/elasticsearch/plugins目录下

sudo docker cp ~/Desktop/ik-7.13.4 elasticsearch:/usr/share/elasticsearch/plugins
sudo docker stop elasticsearch
sudo docker start elasticsearch

注意:elasticsearch内部极其复杂,所以启动容器以后需要等待1分钟左右才对外提供搜索服务。

接下来,我们就可以通过postman测试。

注意:es提供的9200是restful api接口的端口,以http形式访问,9300端口是Api对服务器的管理端口。

post http://127.0.0.1:9200/_analyze?pretty

基于智能分词模式来查询分析词性,json数据

{"analyzer":"ik_smart","text":"我是中国人"    
}

在这里插入图片描述

基于最大分词模式来查询分析词性,json数据

{"analyzer":"ik_max_word","text":"我是中国人"  
}

在这里插入图片描述

elasticsearchhead_108">elasticsearch-head

elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。不过开发中,我们一般使用elasticsearch-head来查看elasticsearch的数据而已,真正对elasticsearch进行增删查改操作一般我们使用kibana或者postman或者编程语言实现的客户端来完成。

我们可以通过docker安装elasticsearch-head来对Elasticsearch 进行界面化管理。

# 拉取镜像
sudo docker pull mobz/elasticsearch-head:5# 创建容器
sudo docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5# 启动容器
sudo docker start elasticsearch-head

访问elasticsearch-head:http://127.0.0.1:9100/,会发现无法连接elasticsearch,原因是因为跨域问题导致。

解决方案就是修改容器elasticsearch中的elasticsearch.yml文件增加跨域支持即可。

sudo docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml ~/Desktop/elasticsearch.yml

修改elasticsearch.yml内容,增加跨域支持,如下:

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true 
http.cors.allow-origin: "*"

elasticsearch.yml文件再次复制到容器elasticsearch中,并重启容器elasticsearch

sudo docker cp ~/Desktop/elasticsearch.yml elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml

修改容器elasticsearch-head的vendor.js让elasticsearch-head界面可以操作elasticsearch

sudo docker cp elasticsearch-head:/usr/src/app/_site/vendor.js ~/Desktop/vendor.js

修改vendor.js内容,把6886行与7573行所在的"application/x-www-form-urlencoded"替换成"application/json;charset=UTF-8",并保存文件,复制回容器elasticsearch-head中。

sudo docker cp ~/Desktop/vendor.js  elasticsearch-head:/usr/src/app/_site/vendor.js

重启elasticsearchelasticsearch-head容器

sudo docker stop elasticsearch
sudo docker start elasticsearchsudo docker stop elasticsearch-head
sudo docker start elasticsearch-head

kibana

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

kibana的版本必须与Elasticsearch一致,所以我们安装的kibana也是7.13.4版本。

sudo docker pull kibana:7.13.4
sudo docker run -d --name kibana -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 --restart=always kibana:7.13.4

修改让kibana能访问到Elasticsearch并完成汉化操作

sudo docker exec -it kibana bash
vi config/kibana.yml

kibana.yml中的内容需改如下:

#
# ** THIS IS AN AUTO-GENERATED FILE **
## Default Kibana configuration for docker target
server.host: "0.0.0.0"
# 注意:此处的IP地址替换为网卡地址,不能使用127.0.0.1或localhost,否则无法访问,可以通过ip a来查看
elasticsearch.hosts: [ "http://IP地址:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

修改完成以后,退出当前kibana容器,并重启kibana容器即可。

sudo docker stop kibana
sudo docker start kibana

等待1分钟左右,打开浏览器直接访问http://127.0.0.1:6501,即可。

若有错误与不足请指出,关注DPT一起进步吧!!!


http://www.ppmy.cn/ops/115667.html

相关文章

Linux便捷查询使用手册 第一章:引言

目录 1.1 什么是Linux&#xff1f; 1.1.1 Linux内核与其他Unix-like系统内核的比较 1.1.2 Linux内核与其他操作系统内核的不同 1.1.3 Linux内核的主要功能和组件 1.2 Linux的历史与发展 1.2.1 重要里程碑事件 1.2.2 重要Linux版本发布 1.3 Linux的发行版概述 1.3.1 主…

Windows系统IP地址设置

目录 Windows系统IP地址设置一、背景二、设置步骤1、打开网络连接设置1) 在搜索栏输入“控制面板”&#xff0c;打开控制面板2) 选择“网络和Internet”&#xff0c;进入“网络和共享中心”。3) 进入网络连接设置 2、修改IP地址1) 选中你要修改的网卡&#xff0c;右键点击选择“…

2024蓝桥杯省B好题分析

题解来自洛谷&#xff0c;作为学习 目录 宝石组合 数字接龙 爬山 拔河 宝石组合 # [蓝桥杯 2024 省 B] 宝石组合## 题目描述在一个神秘的森林里&#xff0c;住着一个小精灵名叫小蓝。有一天&#xff0c;他偶然发现了一个隐藏在树洞里的宝藏&#xff0c;里面装满了闪烁着美…

车辆合格证识别接口-汽车管理智能化-python示例

随着汽车行业的蓬勃发展和数字化进程的加快&#xff0c;如何高效、准确地管理车辆信息成为众多企业面临的重要挑战。新车合格证作为新车上牌、车辆注册和管理的重要凭证&#xff0c;其识别与录入的准确性直接关系到业务流程的顺畅。新车合格证识别接口应运而生&#xff0c;为汽…

千益畅行,开启共享旅游创业的潮流!

在如今这个快节奏的时代&#xff0c;人们越来越渴望走出家门&#xff0c;去看看外面的世界&#xff0c;放松身心&#xff0c;寻找生活中的诗和远方。“世界那么大&#xff0c;我想去看看。” 这句话道出了许多人的心声。而旅游卡的出现&#xff0c;为人们的旅行提供了更多的便利…

windows源码安装protobuf,opencv,ncnn

安装笔记 cmake 在windows可以使用-G"MinGW Makefiles" 搭配make使用&#xff0c;install出来的lib文件时.a结尾的&#xff0c;适合linux下面使用。所以在windows上若无需求使用-G"NMake Makefiles" 搭配nmake。 但是windows上使用-G"NMake Makefil…

数据集-目标检测系列-海洋鱼类检测数据集 fish>> DataBall

数据集-目标检测系列-海洋鱼类检测数据集 fish>> DataBall 数据集-目标检测系列-海洋鱼类检测数据集 fish 数据量&#xff1a;1W 数据项目地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/…

ubuntu server设置wifi和静态IP

需求&#xff1a; 我想每次都用固定的IP地址通过ssh连接我的设备我的设备有wifi设备操作系统是ubuntu22.04 实现&#xff1a; 了解自己的ubuntu可以连接的网段 我看了一下我的路由器网关是&#xff1a;192.168.31.1查找自己路由器当前连接的设备&#xff0c;已经分配出去的I…