ES索引原理

ES在检索时底层使用的就是倒排索引,正向索引是通过key找value,反向索引则是通过value找key。

索引会分为两个区域:索引区和元数据区。数据是这样存储在里面的:

 

简单理解就是:当要录入一条数据时,首先会将完整的数据插入到元数据区中,就算没有指定id,底层也会自动生成uuid。然后将一个个的字段根据其类型放到索引区存储,如果是非text类型的,需要记录其值和对应这一条数据的id,如果为text类型的,则需要先进行分词,然后将每个词进行一个个存储,顺便记录词出现次数和数据的id,如果这个词已经在索引区存在了,直接将id加入到对应数据id的列表即可

查找的过程:根据字段的值先去索引区中根据值去找到对应的key(数据id),也就是倒排索引,拿到对应的数据id后,再去元数据区直接取整条数据记录,所以效率也就很高。

如下是更细节的存储:

 

注意:ES分别为每个字段都建立了一个倒排索引。因此查询时查询字段的term,就能知道文档ID,就能快速找到文档。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/343975.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

68.网游逆向分析与插件开发-角色数据的获取-利用蓝量属性分析角色数据基址

内容参考于:易道云信息技术研究院VIP课 上一个内容:67.网游逆向分析与插件开发-角色数据的获取-分析角色数据基址-CSDN博客 然后分析任何一个东西,逆向分析的本质就是找东西的意思,找东西核心的观念是内存里得有,就是…

在机械行业中,直线导轨和弧形导轨哪个应用范围更广泛?

弧形导轨和直线导轨是两种常见的导轨类型,直线导轨主要被用于高精度或快速直线往复运动场所,而弧形导轨是一种专门设计用于曲线运动的导轨系统,那么在机械行业中,直线导轨和弧形导轨哪个应用范围更加广泛呢? 直线导轨主…

Redis的设计、实现

数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在合适的…

11.3、信赖域策略优化算法TRPO强化学习-运用实践

基于LunarLander登陆器的TRPO强化学习(含PYTHON工程) TRPO强化学习算法主要分为3个部分,分别介绍其理论、细节、实现 本文主要介绍TRPO的理论和代码的对应、实践 TRPO系列(TRPO是真的复杂,全部理解花费了我半个月的…

计算机组成原理-计算机的发展(计算机系统 硬件发展 软件发展 微处理器和微计算机的发展 摩尔定律 发展趋势)

文章目录 总览什么是计算机系统软件硬件的发展第一代第二代第三代第四代微处理器的发展相关人物摩尔定律 软件的发展目前的发展趋势小结 总览 什么是计算机系统 软件 语言处理程序就是编译程序之类的 调试代码就是服务程序 硬件的发展 第一代 逻辑元件:处理电信…

【Leetcode】2085. 统计出现过一次的公共字符串

文章目录 题目思路代码 题目 2085. 统计出现过一次的公共字符串 思路 使用两个哈希表 words1Count 和 words2Count 分别统计两个数组中每个单词的出现次数。然后遍历 words1Count 中的每个单词,如果该单词在 words1 中出现了一次,且在 words2 中也出…

知识库软件有很多,这几个最好用

时代进步的同时,逐渐优化的企业知识库已经成为企业优化工作效率、提升企业竞争力的重要工具。随着云计算和大数据技术的快速发展,知识库软件如雨后春笋般出现在人们的视野中。下面,我从寻宝者的角度,向大家稳稳地推荐三款最优秀的…

DHCP与时间同步

目录 一、DHCP 1、DHCP定义 1.什么是DHCP 2.DHCP的好处 3.DHCP的分配方式 4.为什么使用DHCP 5.DHCP模式 2、DHCP的工作过程 3、DHCP动态配置主机地址 1.DHCP服务的优点 2.可分配的地址信息 3.动态分配IP地址 二、时间同步 1、ntp 2、chrony 1、搭建本地本地时间…

C++学习笔记——类继承

目录 一、一个简单的基类 1.1封装性 1.2继承性 1.3虚函数 1.4多态性 二、基类 2.1一个简单的C基类的示例 2.2 Animal是一个基类。 三、继承 3.1概念 3.2is-a关系 3.3多态公有继承 3.4静态联编和动态联编 3.5访问控制 3.6ABC理念 一、一个简单的基类 C中的基类是一…

从vue小白到高手,从一个内容管理网站开始实战开发第七天,登录功能后台功能设计--通用分页、枚举以及相关工具类

上一篇实现了数据库访问层的相关功能,还没有了解的小伙伴可以去看前面文章实现的内容,因为每一篇内容都是连贯的,不学习的话可能下面的内容学习起来会有点摸不着头脑 从vue小白到高手,从一个内容管理网站开始实战开发第六天,登录功能后台功能设计--API项目中的登录实现(二…

Java十大经典算法—KMP

字符串匹配问题: 1.暴力匹配 public class ViolenceMatch {public static void main(String[] args) {String str1 "硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好";String str2 "尚硅谷你尚硅你好";int index violenceMatch(str1, str2);S…

zookeeper下载安装部署

zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目的一个子项目,并根据google发表的一篇论文来实现的。zookeeper为分布式系统提供了高效且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一…