有个人长的像洋葱,走着走着就哭了…….

关于倒排索引中搜索结果合并不太理解的地方

Elasticsearch | 作者 code4j | 发布于2018年04月01日 | 阅读数:3713

假设我查询条件有两个: x AND y。  那么根据Lucene倒排索引查询的过程,先从字典中找出x,然后得到第一个条件的posting lsit;再从字典找出y,得到第二个条件的posting list;最后用两个posting list 做交集得到共同的部分。
 
那么如果我按照第一个条件得到posting list,再用第二个条件从posting list 过滤,其实也是能实现这个效果的,而且还能减少两个集合的运算。 因为我觉得两个posting list 做聚合运算也挺耗时而且比较大的时候挺吃内存的,等于我第一个list中每个文档id要去第二个list中对比,而且这个过程发生在内存。
 
但是倒排索引既然没有这么做一定有它的道理,想问下大神们这块倒排索引究竟是如何处理的呢
已邀请:

strglee

赞同来自: code4j

你说的这种虽然也能实现 而且比较省内存 但是无法并发执行 只能顺序执行 n个条件所用的时间 也就是n*time了 太长了不能忍受

要回复问题请先登录注册