阿里面试题解答-倒排索引

Posted coderbean

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里面试题解答-倒排索引相关的知识,希望对你有一定的参考价值。

倒排索引原理?

elasticsearch 倒排索引原理 - 知乎

倒排索引就是通过值去找文件

技术图片

技术图片

term dictionary:如果后面的 term 比较多,例如 18 岁的有好几万人。需要提高查询效率,因此产生了 term dictionary,就是吧所有的 term 做一下排序,然后使用二分查找,logN次 访问磁盘
term index:每次访问磁盘太慢了,需要放到内存里,可以整个 term dictionary 太大了,只能放一部分。所以出现了这个 Term Index,它其实是一个 Trie 树。

技术图片

最后得到下面的这样一个东西,先查 term index,然后 term dictionary,然后二分查找元素

技术图片

 

如何联合索引查询?

  • 使用skip list数据结构。同时遍历gender和age的posting list,互相skip;
  • 使用bitset数据结构,对gender和age两个filter分别求出bitset,对两个bitset做AND操作。
什么是跳表(skip list)深夜学算法之SkipList:让链表飞
bitset 就是给所有的文件做一个 bit 表,然后按位与。
 

以上是关于阿里面试题解答-倒排索引的主要内容,如果未能解决你的问题,请参考以下文章

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

ElasticSearch 的倒排索引是什么

.NET面试题系列(十三)Lucene底层原理

ES 索引解析(倒排索引 正排索引)

ElasticSearch倒排索引及其原理

正排索引倒排索引