欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > es-核心储存原理介绍

es-核心储存原理介绍

2025/9/18 21:56:28 来源:https://blog.csdn.net/Draymond_feng/article/details/147431836  浏览:    关键词:es-核心储存原理介绍

原始数据

idusernamegradedescription
1ahua87i like  study
2xiaowang92i like  es
3zhaoyun63i like  java

倒排索引

description使用的text分词,使用倒排索引

termid
i1,2,3
like1,2,3
study1
es2
java3

分词后,如果匹配 es,则需要逐行匹配,时间复杂度O(N),将term的此项按照字典顺序排序,通过二分查找将时间复杂度优化到O(lgN)

列式存储

字段Doc Values 存储内容(列式)
id[1, 2, 3]
username["ahua", "xiaowang", "zhaoyun"]
grade[87, 92, 63]

排序流程:

步骤 1:读取 grade 的 Doc Values

Elasticsearch 直接从列式存储中加载 grade 的值和对应的文档 ID(_id):

  1. grade: [87, 92, 63]

  2. _id: [1, 2, 3]

步骤 2:构建 (grade, _id) 对

将 grade 和 _id 组合成可排序的键值对:

  [(87, 1), (92, 2), (63, 3)]

步骤 3:排序(升序为例)

对键值对按 grade 升序排序:

[(63, 3), (87, 1), (92, 2)]

步骤 4:按排序结果获取文档

根据排序后的 _id 顺序,从 _source 中获取完整文档:

  1. _id=3 → { "username": "zhaoyun", "grade": 63 }

  2. _id=1 → { "username": "ahua", "grade": 87 }

  3. _id=2 → { "username": "xiaowang", "grade": 92 }

版权声明:

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

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

热搜词