欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > elasticsearch(ES)简介及安装-----笔记

elasticsearch(ES)简介及安装-----笔记

2025/2/8 13:30:19 来源:https://blog.csdn.net/weixin_44846205/article/details/145491456  浏览:    关键词:elasticsearch(ES)简介及安装-----笔记

elasticsearch简介

ES是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。
ES结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。

elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。kibana负责数据可视化,elasticsearch负责存储、计算、搜索数据,logstash\Beats负责数据抓取。

elasticsearch底层实现是Lucene计术。lucene是一个java语言的搜索引擎类库,是Apache公司的顶级项目。
官网地址:https://lucene.apache.org/
Lucene的优势:易扩展;高性能(基于倒排索引)
Lucene的缺点:只限于java语言开发,学习曲线陡峭,不支持水平扩展
elasticsearch是lucene的二次开发,相比于lucene,elasticsearch具备优势:支持分布式,可水平扩展;提供Restful接口,可被任何语言调用

正向索引和倒序索引

elasticsearch采用倒排索引:
文档:每条数据都是一个文档
词条:文档按照语义分成词语
正向索引:基于文档id创建索引。查询词条必须先找到文档,然后判断是否包含词条
倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档位置。查询时先根据词条查询到文档id,而后获取到文档

ES于sql基本概念对比

文档:ES是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在ES中。
字段:json文档中的字段。
索引:相同类型的文档的集合。
索引映射:索引中文档的字段约束信息,类似表的结构约束
在这里插入图片描述
架构:
mysql:擅长事物类型操作,可以确保数据的安全和一致性
elasticsearch:擅长海量数据的搜索、分析、计算

ES安装

单点部署es
1.创建网络:因为我们还需要部署kibana容器,因此需要让es和kibana容器互联,这里先创建一个网络:docker network create es -net
2.加载镜像:这里我们采用elasticsearch的7.12.1的版本镜像,运行命令行:docker load -i es.tar
3.运行
在这里插入图片描述
命令解释:
-e “cluster.name=es-docker-cluster”:设置集群名称
-e “http.host=0.0.0.0”:监听的地址,可以外网访问
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:内存大小
-e “discovery.tyoe=single-node”:非集群模式
-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
-v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
-v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
–privileged:授权逻辑卷访问权
–network es-net:加入一个名为es-net的网络中
-p 9200:9200:端口映射配置

kibana安装

kibana可以给我们提供一个elasticsearch的可视化界面
1.部署:运行docker命令,部署kabana
在这里插入图片描述
–network es-net:加入一个名为es-net的网络中,于elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器直接访问elasticsearch
-p 5601:5601:端口映射配置
可以通过命令docker logs -f kibana启动

kibana中Dev Tools就是es控制台
ES-安装IK分词器
分词器作用:创建倒排索引时对文档分词;用户搜索时,对输入的内容分词
es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词,但默认的分词规则对中文处理不友好
处理中文分词,一般会使用IK分词器。https://github.com/medci/elasticsearch-analysis-ik
在线安装ik插件
在这里插入图片描述
ik分词器有两种模式:ik_smart最少粒度切分;ik_max_word最细粒度切分

#测试分词器
POST /_analyze
{"text":"课程白嫖"“analyzer”:"ik_smart"
}

IK分词器的拓展和停用词典
1.利用config目录的ikAnalyzer.cfg.xml文件添加拓展词典和停用词典
2.config目录中如果没有对应词典文件,需自己新建文件,再在词典中添加词条或者停用词条
在这里插入图片描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com