Elasticsearch学习

1、什么是Elasticsearch?

Elaticsearch,简称为 ESES 是一个开源的高扩展的分布式全文搜索引擎 , 是整个 ElasticStack 技术栈的核心。可以帮助我们从海量数据中快速找到需要的内容。

elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域

ES底层是基于Lucene,Lucene是一个Java语言的搜索引擎类库,但是这个类库只支持java,学习复杂。ES通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2、为什么要有ES?

数据存储大致可分为结构化数据和非结构化数据

结构化数据是指可以使用关系型数据库 表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。

非结构化数据就是没有固定结构的数据 。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。

从字面理解,关系型数据库主要的功能是存储而不是搜索,搜索只是顺便提供的功能。

而搜索引擎主要功能在于搜索,存储只是过程不是目的。

关系型数据库进行精确搜索可以胜任,但是针对模糊搜索,性能就比较差了,尤其是数据量大的时候。但是模糊搜索或者是相关性搜索才是人们用的更多的搜索,所以才有了ES的存在。

底层实现:

Mysql基于B+树索引,来实现快速检索,ES则基于倒排索引,对于文档搜索来说,倒排索引在性能和空间上都有更加明显的优势。

3、ES的历史

2004年Shay Banon基于Lucene开发了Compass

2010年Shay Banon 重写了Compass,取名为Elasticsearch。

官网地址: https://www.elastic.co/cn/

相比与lucene,elasticsearch具备下列优势:

  • 支持分布式,可水平扩展
  • 提供Restful接口,可被任何语言调用

4、什么是倒排索引

正向索引:像mysql中存储的形式,他们基于一条数据的id创建索引,当进行查询时,先找到这一条数据,然后判断数据中是否有想查询的内容

倒排索引:数据库中记录的都是对文档内容分词后的词条,针对词条创建索引,并且记录词条所在文档的信息,查询时现根据词条查询到文档id,然后获取到文档。

关于倒排索引理解可参考https://www.cnblogs.com/fengfengyang/p/16704685.html

比如用户要搜索华为手机,可以将华为和手机进行分词,分词后,根据词条查询包含这两个词的文档id,然后根据文档id查询到文档,最后经过去重,就可以得到搜索结果。

倒排索引中包含两部分:

1、词条字典:记录所有的词条,以及词条与倒排列表之间的关系,会给词条创建索引,提高查询和插入效率

2、倒排列表:记录词条所在的文档id、词条出现频率、词条出现位置等信息

文档id:用于快速获取文档

词条频率: 词条在文档中出现的次数,用于评分(频率高的可能搜索结果靠前)

5、ES中的一些概念

ES与Mysql中概念比对

索引(index):相同类型的文档的集合,比如商品信息索引,订单信息索引,人员信息索引

文档:索引中存储的每一条数据叫做一条文档,文档数据会被序列化为json格式后存储在elasticsearch中

字段:文档中的字段,也就是JSON中的每一个字段

映射:索引中文档的约束,包括字段类型的约束等

操作语句:DSL,JSON风格的请求语句,用来实现增删改查等操作

相关推荐
KaKa_大王3 小时前
关于秒杀项目的一些理解
java·学习
IT小白杨3 小时前
短视频多账号运营环境管理指南:指纹浏览器与云手机技术解析
大数据·经验分享·web安全·智能手机·音视频·指纹浏览器
Z5998178413 小时前
c#软件开发学习笔记--Modbus-TCP/UDP网口通讯
笔记·学习·c#
anxiao_m3 小时前
数字孪生私有化部署怎么选?主流平台横向深度测评
大数据·3dcoat
zyf1044164 小时前
暑期实践日志 Day29:根据修改要求,进行视频字幕添加
学习·计算机网络·剪辑·暑期实践·课题任务
Data_Journal4 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
跨境小彭4 小时前
店群运营实操复盘:批量活动申报自动化优化方案
大数据·运维·人工智能·自动化·跨境电商·temu·temu电商运营
Eric.464 小时前
Stable Diffusion+ComfyUI+OpenClaw AI漫剧量产提示词工程:结构化Prompt、负面词脱敏、权重锁定防画面崩坏全方案
大数据·人工智能·stable diffusion·prompt·comfyui·ai漫剧
长谷深风1114 小时前
ReAct框架:让AI像人类一样思考与行动
大数据·人工智能·热门·ai agent·agent工作流·智能体设计·ai产品设计
xqqxqxxq5 小时前
AI Agent学习:打通真实世界:Agent 工具分类与设计原则(李博杰《深入理解 AI Agent》4.1 4.2观后总结)
学习·ai