ES常见问题汇总

发布于:2024-12-06 ⋅ 阅读:(32) ⋅ 点赞:(0)

ES常见问题汇总

1.Es的作用(elasticsearch)

  • 作用:

    elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容

  • ELK技术栈

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

    在这里插入图片描述

  • 分工

    在这里插入图片描述

2.Es的基本术语

  • 索引(index):相当于mysql的数据库 – 也可以认为是表,因为doc_type被淡化了

  • 类型(doc_type):相当于mysql的表 – 被淡化了

  • 文档(document):相当于mysql的行

    在这里插入图片描述

  • 节点(node):一般指安装es的服务器

  • 分片(primary shard):一个节点有多个分片组成

  • 副本(replica shard):一个分片有多个备份,备份就是副本

  • 段(segment):一个分片是由多个段组成

    在这里插入图片描述

3.Es倒排索引原理

3.1正向索引

正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程

id name price
1 小米手机 6000
2 三星手机 2999
3 三星小米充电器 2600
4 小米手环 3600

在这里插入图片描述

3.2倒排索引

倒排索引则相反,是先找到用户要搜索的词条,根据词条得包含词条的文档的id,然后根据id获取文档。是根据词条找文档的过程

创建倒排索引是对正向索引的一种特殊处理,流程如下:

  • 将每一个文档的数据利用算法分词,得到一个个词条
  • 创建表,每行数据包括词条、词条所在文档id信息
词条 文档id
小米 1,3,4
手机 1,2
三星 2,3
充电器 3
手环 4

流程
在这里插入图片描述

虽然要先查询倒排索引,再查询正排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!无需全表扫描。

是不是说,我们学习了elasticsearch就不再需要mysql了呢?

并不是如此,两者各自有自己的擅长支出:

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性
  • Elasticsearch:擅长海量数据的搜索、分析、计算

因此在企业中,往往是两者结合使用:

  • 对安全性要求较高的写操作,使用mysql实现
  • 对查询性能要求较高的搜索需求,使用elasticsearch实现
  • 两者再基于某种方式,实现数据的同步,保证一致性

在这里插入图片描述

4.Es的近实时

在这里插入图片描述

5.Es的写入流程

在这里插入图片描述

6.Es的搜索流程

query查询阶段
在这里插入图片描述

fetch读取阶段

在这里插入图片描述

7Es分页

1、常见的分页方式:from+size

elasticsearch默认采用的分页方式是from+size的形式,但是在深度分页的情况下,这种使用方式的效率是非常低的,比如from=5000,size=10,如果有10个分片,es需要在各个分片上匹配排序并得到5010*10条有效数据,然后在协调节点中排序前5000条获取后10条数据返回即可。除了会遇到效率上的问题,还有一个无法解决的问题是es目前支持最大的skip值是max_result_window默认为10000,也就是说当from+size > max_result_window时,es将返回错误。

解决方案:

    问题描述:比如当客户线上的es数据出现问题,当分页到几百页的时候,es无法返回数据,此时为了恢复正常使用,我们可以采用紧急规避的方式,就是将max_result_window的值调至50000。

2、scroll方式

为了满足深度分页的场景,es提供了scroll的方式进行分页读取。原理上是对某次查询生成一个游标scroll_id,后续的查询只需要根据这个游标去取数据,直到结果集中返回的hits字段为空,就表示遍历结束。Scroll的作用不是用于实时查询数据,因为它会对es做多次请求,不可能做到实时查询。它的主要作用是用来查询大量数据或全部数据。

使用scroll,每次只能获取一页的内容,然后会返回一个scroll_id。根据返回的这个scroll_id可以不断地获取下一页的内容,所以scroll并不适用于有跳页的情景

下面是springboot,springCloudalibaba等免费视频地址,有兴趣可以关注一下

<!-- springboot,springboot整合redis,整合rocketmq视频: -->
https://www.bilibili.com/video/BV1nkmRYSErk/?vd_source=14d27ec13a4737c281b7c79463687112

<!-- springcloudalibaba,openfeign,nacos,gateway,sso视频:-->
https://www.bilibili.com/video/BV1cFDEYWEkY/?vd_source=14d27ec13a4737c281b7c79463687112

<!-- vue+springboot前后端分离视频:-->
https://www.bilibili.com/video/BV1JLSEYJETc/?vd_source=14d27ec13a4737c281b7c79463687112

<!-- shiro视频:-->
https://www.bilibili.com/video/BV1YVUmYJEPi/?vd_source=14d27ec13a4737c281b7c79463687112

网站公告

今日签到

点亮在社区的每一天
去签到