ElasticSearch底层结构与查询原理

内容参考b站视频:
【ES原理-index底层结构与查询原理(ES为什么这么快)】https://www.bilibili.com/video/BV1664y1F7cX?vd_source=232f772a583ba823c937c03714c11acd
【ES-skiplist(ES如何实现多条件的查询?)】https://www.bilibili.com/video/BV1WK4y1v7SK?vd_source=232f772a583ba823c937c03714c11acd

在集群层面:
以三个主分片和三个副本分片为例,
请求到其中任意一个节点,每个节点能协调其他节点,随机选三个分片进行查询,结果统一返回到第一个节点整合并返回给客户端。

在分片层面:
每个分片的结构是Lucene引擎,索引是fst树,前缀树(trie树)的变形,前缀后缀都共享,减少内存占用。树的图片见文章尾。

es的多条件查询:
比如name=代码王 and gender=男
分别用两个的树查到结果,然后取与操作。具体如下:

bitmap和skiplist两种方式:
1、如果使用跳表,对最短的posting list中的每个id,逐个在另外两个posting list中查找看是否存在,最后得到交集的结果。
2、如果使用bitset,就很直观了,直接按位与,得到的结果就是最后的交集。例文档id集合,bitmap存,比如10011,代表文档id=1.4.5,也很好做与操作。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六边形战士-已停用-移步redbook

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值