lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Khludnev (JIRA)" <>
Subject [jira] [Created] (LUCENE-4571) speedup disjunction with minShouldMatch
Date Fri, 23 Nov 2012 15:00:59 GMT
Mikhail Khludnev created LUCENE-4571:

             Summary: speedup disjunction with minShouldMatch 
                 Key: LUCENE-4571
             Project: Lucene - Core
          Issue Type: Improvement
          Components: core/search
    Affects Versions: 4.1
            Reporter: Mikhail Khludnev

even minShouldMatch is supplied for 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) {
        } else {
          if (numScorers < minimumNrMatchers) {
            return doc = NO_MORE_DOCS;
      if (nrMatchers >= minimumNrMatchers) {
    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. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message