Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.1
-
None
-
New
Description
even minShouldMatch is supplied to DisjunctionSumScorer it enumerates whole disjunction, and verifies minShouldMatch condition on every doc:
public int nextDoc() throws IOException { assert doc != NO_MORE_DOCS; while(true) { while (subScorers[0].docID() == doc) { if (subScorers[0].nextDoc() != NO_MORE_DOCS) { heapAdjust(0); } else { heapRemoveRoot(); if (numScorers < minimumNrMatchers) { return doc = NO_MORE_DOCS; } } } afterNext(); if (nrMatchers >= minimumNrMatchers) { break; } } return doc; }
spo proposes (as well as I get it) to pop nrMatchers-1 scorers from the heap first, and then push them back advancing behind that top doc. For me the question no.1 is there a performance test for minShouldMatch constrained disjunction.
Attachments
Attachments
1.
|
BooleanWeight should decide how to execute minNrShouldMatch | Open | Unassigned |