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

倒排索引原理?

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 表,然后按位与。
 

转载于:https://www.cnblogs.com/coderbean/p/11198201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值