上一篇中讲到lucene在合并倒排表时候的交集算法操作.本文继续对倒排表求并集的算法:
lucene处理交集时采用的数据结构是一个倒排表的数组,数组的元素是一个个的迭代器来表现每个倒排表.
而在求并集的时候则是采用了队列数据结构.在DisjunctionSumScorer类的构造函数中对队列进行了初始化操作:
lucene在查询的时候,BooleanScorer2调用nextDoc()会调用DisjunctionSumScorer类中一个非常重要的方法:advanceAfterCurrent()