Package org.apache.lucene.search
Class Scorer
- java.lang.Object
-
- org.apache.lucene.search.Scorer
-
- Direct Known Subclasses:
ConstantScoreScorer,FilterScorer,SpanScorer
public abstract class Scorer extends Object
Expert: Common scoring functionality for different types of queries.A
Scorerexposes aniterator()over documents matching a query in increasing order of doc Id.Document scores are computed using a given
Similarityimplementation.NOTE: The values Float.Nan, Float.NEGATIVE_INFINITY and Float.POSITIVE_INFINITY are not valid scores. Certain collectors (eg
TopScoreDocCollector) will not properly collect hits with these scores.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classScorer.ChildScorerA child Scorer and its relationship to its parent.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract intdocID()Returns the doc ID that is currently being scored.Collection<Scorer.ChildScorer>getChildren()Returns child sub-scorers positioned on the current document Note that this method should not be called on Scorers passed toLeafCollector.setScorer(Scorer), as these may be synthetic Scorers produced byBulkScorerwhich will throw an Exception.WeightgetWeight()returns parent Weightabstract DocIdSetIteratoriterator()Return aDocIdSetIteratorover matching documents.abstract floatscore()Returns the score of the current document matching the query.TwoPhaseIteratortwoPhaseIterator()Optional method: Return aTwoPhaseIteratorview of thisScorer.
-
-
-
Field Detail
-
weight
protected final Weight weight
the Scorer's parent Weight. in some cases this may be null
-
-
Constructor Detail
-
Scorer
protected Scorer(Weight weight)
Constructs a Scorer- Parameters:
weight- The scorersWeight.
-
-
Method Detail
-
docID
public abstract int docID()
Returns the doc ID that is currently being scored. This will return-1if theiterator()is not positioned orDocIdSetIterator.NO_MORE_DOCSif it has been entirely consumed.- See Also:
DocIdSetIterator.docID()
-
score
public abstract float score() throws IOExceptionReturns the score of the current document matching the query. Initially invalid, untilDocIdSetIterator.nextDoc()orDocIdSetIterator.advance(int)is called on theiterator()the first time, or when called from withinLeafCollector.collect(int).- Throws:
IOException
-
getWeight
public Weight getWeight()
returns parent Weight- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
getChildren
public Collection<Scorer.ChildScorer> getChildren() throws IOException
Returns child sub-scorers positioned on the current document Note that this method should not be called on Scorers passed toLeafCollector.setScorer(Scorer), as these may be synthetic Scorers produced byBulkScorerwhich will throw an Exception.- Throws:
IOException- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
iterator
public abstract DocIdSetIterator iterator()
Return aDocIdSetIteratorover matching documents. The returned iterator will either be positioned on-1if no documents have been scored yet,DocIdSetIterator.NO_MORE_DOCSif all documents have been scored already, or the last document id that has been scored otherwise. The returned iterator is a view: calling this method several times will return iterators that have the same state.
-
twoPhaseIterator
public TwoPhaseIterator twoPhaseIterator()
Optional method: Return aTwoPhaseIteratorview of thisScorer. A return value ofnullindicates that two-phase iteration is not supported. Note that the returnedTwoPhaseIterator'sapproximationmust advance synchronously with theiterator(): advancing the approximation must advance the iterator and vice-versa. Implementing this method is typically useful onScorers that have a high per-document overhead in order to confirm matches. The default implementation returnsnull.
-
-