org.apache.lucene.search
Class Scorer

java.lang.Object
  extended by org.apache.lucene.search.Scorer
Direct Known Subclasses:
ConstantScoreQuery.ConstantScorer, ReqExclScorer, ReqOptSumScorer, SpanScorer

public abstract class Scorer
extends Object

Expert: Common scoring functionality for different types of queries.

A Scorer either iterates over documents matching a query in increasing order of doc Id, or provides an explanation of the score for a query for a given document.

Document scores are computed using a given Similarity implementation.

See Also:
BooleanQuery.setAllowDocsOutOfOrder(boolean)

Constructor Summary
protected Scorer(Similarity similarity)
          Constructs a Scorer.
 
Method Summary
abstract  int doc()
          Returns the current document number matching the query.
abstract  Explanation explain(int doc)
          Returns an explanation of the score for a document.
 Similarity getSimilarity()
          Returns the Similarity implementation used by this scorer.
abstract  boolean next()
          Advances to the document matching this Scorer with the lowest doc Id greater than the current value of doc() (or to the matching document with the lowest doc Id if next has never been called on this Scorer).
abstract  float score()
          Returns the score of the current document matching the query.
 void score(HitCollector hc)
          Scores and collects all matching documents.
protected  boolean score(HitCollector hc, int max)
          Expert: Collects matching documents in a range.
abstract  boolean skipTo(int target)
          Skips to the document matching this Scorer with the lowest doc Id greater than or equal to a given target.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Scorer

protected Scorer(Similarity similarity)
Constructs a Scorer.

Parameters:
similarity - The Similarity implementation used by this scorer.
Method Detail

getSimilarity

public Similarity getSimilarity()
Returns the Similarity implementation used by this scorer.


score

public void score(HitCollector hc)
           throws IOException
Scores and collects all matching documents.

Parameters:
hc - The collector to which all matching documents are passed through HitCollector.collect(int, float).
When this method is used the explain(int) method should not be used.
Throws:
IOException

score

protected boolean score(HitCollector hc,
                        int max)
                 throws IOException
Expert: Collects matching documents in a range. Hook for optimization. Note that next() must be called once before this method is called for the first time.

Parameters:
hc - The collector to which all matching documents are passed through HitCollector.collect(int, float).
max - Do not score documents past this.
Returns:
true if more matching documents may remain.
Throws:
IOException

next

public abstract boolean next()
                      throws IOException
Advances to the document matching this Scorer with the lowest doc Id greater than the current value of doc() (or to the matching document with the lowest doc Id if next has never been called on this Scorer).

When this method is used the explain(int) method should not be used.

Returns:
true iff there is another document matching the query.
Throws:
IOException
See Also:
BooleanQuery.setAllowDocsOutOfOrder(boolean)

doc

public abstract int doc()
Returns the current document number matching the query. Initially invalid, until next() is called the first time.


score

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

Throws:
IOException

skipTo

public abstract boolean skipTo(int target)
                        throws IOException
Skips to the document matching this Scorer with the lowest doc Id greater than or equal to a given target.

The behavior of this method is undefined if the target specified is less than or equal to the current value of doc().

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.

When this method is used the explain(int) method should not be used.

Parameters:
target - The target document number.
Returns:
true iff there is such a match.
Throws:
IOException
See Also:
BooleanQuery.setAllowDocsOutOfOrder(boolean)

explain

public abstract Explanation explain(int doc)
                             throws IOException
Returns an explanation of the score for a document.
When this method is used, the next(), skipTo(int) and score(HitCollector) methods should not be used.

Parameters:
doc - The document number for the explanation.
Throws:
IOException


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