org.apache.lucene.search
Class ReqOptSumScorer

java.lang.Object
  extended by org.apache.lucene.search.Scorer
      extended by org.apache.lucene.search.ReqOptSumScorer

public class ReqOptSumScorer
extends Scorer

A Scorer for queries with a required part and an optional part. Delays skipTo() on the optional part until a score() is needed.
This Scorer implements Scorer.skipTo(int).


Constructor Summary
ReqOptSumScorer(Scorer reqScorer, Scorer optScorer)
          Construct a ReqOptScorer.
 
Method Summary
 int doc()
          Returns the current document number matching the query.
 Explanation explain(int doc)
          Explain the score of a document.
 boolean next()
          Advances to the next document matching the query.
 float score()
          Returns the score of the current document matching the query.
 boolean skipTo(int target)
          Skips to the first match beyond the current whose document number is greater than or equal to a given target.
 
Methods inherited from class org.apache.lucene.search.Scorer
getSimilarity, score, score
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReqOptSumScorer

public ReqOptSumScorer(Scorer reqScorer,
                       Scorer optScorer)
Construct a ReqOptScorer.

Parameters:
reqScorer - The required scorer. This must match.
optScorer - The optional scorer. This is used for scoring only.
Method Detail

next

public boolean next()
             throws IOException
Description copied from class: Scorer
Advances to the next document matching the query.

Specified by:
next in class Scorer
Returns:
true iff there is another document matching the query.
When this method is used the Scorer.explain(int) method should not be used.
Throws:
IOException

skipTo

public boolean skipTo(int target)
               throws IOException
Description copied from class: Scorer
Skips to the first match beyond the current whose document number is greater than or equal to a given target.
When this method is used the Scorer.explain(int) method should not be used.

Specified by:
skipTo in class Scorer
Parameters:
target - The target document number.
Returns:
true iff there is such a match.

Behaves as if written:

   boolean skipTo(int target) {
     do {
       if (!next())
             return false;
     } while (target > doc());
     return true;
   }
 
Most implementations are considerably more efficient than that.
Throws:
IOException

doc

public int doc()
Description copied from class: Scorer
Returns the current document number matching the query. Initially invalid, until Scorer.next() is called the first time.

Specified by:
doc in class Scorer

score

public float score()
            throws IOException
Returns the score of the current document matching the query. Initially invalid, until next() is called the first time.

Specified by:
score in class Scorer
Returns:
The score of the required scorer, eventually increased by the score of the optional scorer when it also matches the current document.
Throws:
IOException

explain

public Explanation explain(int doc)
                    throws IOException
Explain the score of a document.

Specified by:
explain in class Scorer
Parameters:
doc - The document number for the explanation.
Throws:
IOException
To Do:
Also show the total score. See BooleanScorer.explain() on how to do this.


Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.