Class DisjunctionScoreBlockBoundaryPropagator

java.lang.Object
org.apache.lucene.search.DisjunctionScoreBlockBoundaryPropagator

final class DisjunctionScoreBlockBoundaryPropagator extends Object
A helper to propagate block boundaries for disjunctions. Because a disjunction matches if any of its sub clauses matches, it is tempting to return the minimum block boundary across all clauses. The problem is that it might then make the query slow when the minimum competitive score is high and low-scoring clauses don't drive iteration anymore. So this class computes block boundaries only across clauses whose maximum score is greater than or equal to the minimum competitive score, or the maximum scoring clause if there is no such clause.