org.apache.lucene.search

Class 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

doc, explain, getSimilarity, next, score, score, score, skipTo

Constructor Details

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 Details

doc

public int doc()
Overrides:
doc in interface Scorer

explain

public Explanation explain(int doc)
            throws IOException
Explain the score of a document.
Overrides:
explain in interface Scorer
To Do:
Also show the total score. See BooleanScorer.explain() on how to do this.

next

public boolean next()
            throws IOException
Advances to the next document matching the query.
Overrides:
next in interface 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.

score

public float score()
            throws IOException
Overrides:
score in interface Scorer
Returns:
The score of the required scorer, eventually increased by the score of the optional scorer when it also matches the current document.

skipTo

public boolean skipTo(int target)
            throws IOException
Overrides:
skipTo in interface 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.

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