ES倒排索引中的优化原理 inverted index

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES倒排索引中的优化原理 inverted index相关的知识,希望对你有一定的参考价值。

参考技术A

ES索引中的优化 inverted index

1、对field中的field value进行分词得到多个term(词语),建立由term映射_id的索引即为倒排索引;

2、对term进行排序 (这种也可以使用类似mysql的MyISAM的B+索引方法查询数据);

3、为了term存入内存,用term index来将term dictionary转化为索引存入内存,通过tire树建立term前缀与posting lists(或指向其地址)的映射,并确定数据所在block;

4、优化posting lists在磁盘的存储:文档在shard中存入不同segment,segment每个文档id唯一,范围0-2^31,(因此每个id原本需要4个字节存),使用 frame of reference ,存储id时,转化为delta-encoding的id,每个block存256个转化后的id,header首位记录了其中记录id需要的最大位数;

5、基于缓存的filter查询优化:生成(filter,segment)与id的映射,根据id的高16位分配到block,N/2^16为block id,N%2^16为block内的id,block内数据小于4096用short保存,反之用bitmap;

参考:

https://zhuanlan.zhihu.com/p/137574234

http://www.lvesu.com/?uri=/blog/main/cms-611.html

ES基本原理

ES学习笔记

Elasticsearch学习笔记_巨輪的博客-CSDN博客

Elasticsearch学习之图解Elasticsearch中的_source、_all、store和index属性_BUse的博客-CSDN博客

倒排索引

倒排索引:ES倒排索引底层原理及FST算法的实现过程_es fst_Elastic开源社区的博客-CSDN博客

【ElasticSearch 进阶】倒排索引 + FOR + RBM压缩算法_weixin_43315211的博客-CSDN博客

ES写入和查询的流程

ElasticSearch为何查询速度快(秒懂)_借汝之光,得以光明的博客-CSDN博客_es查询快的原理

ES索引结构、存储原理及 增量添加索引_qq_25106373的博客-CSDN博客_es索引结构

ElasticSearch二:ES写入和查询的流程_Coding Now的博客-CSDN博客_es的写入与查询流程

es并发控制机制

14剖析Elasticsearch并发冲突问题_Dongguo丶的博客-CSDN博客_elasticsearch并发

解决在使用 Elasticsearch(ES)多线程批量操作时导致并发一致性的问题!!_北可的博客-CSDN博客_es多线程

es的乐观锁并发控制机制保证先到的修改能够修改成功,后到的修改就修改不成功

ES问题:

1.索引过程调整和优化????那些参数不懂

以上是关于ES倒排索引中的优化原理 inverted index的主要内容,如果未能解决你的问题,请参考以下文章

ES基本原理

ElasticSearch倒排索引及其原理

手写简版倒排索引(Inverted Index)

漫画ES原理 必知必会的倒排索引和分词

es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?...

Day123.ElasticSearch:CAP定理集群搭建架构原理及分片倒排索引面试题