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
Scorer
exposes aniterator()
over documents matching a query in increasing order of doc Id.Document scores are computed using a given
Similarity
implementation.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 class
Scorer.ChildScorer
A child Scorer and its relationship to its parent.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract int
docID()
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 byBulkScorer
which will throw an Exception.Weight
getWeight()
returns parent Weightabstract DocIdSetIterator
iterator()
Return aDocIdSetIterator
over matching documents.abstract float
score()
Returns the score of the current document matching the query.TwoPhaseIterator
twoPhaseIterator()
Optional method: Return aTwoPhaseIterator
view 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-1
if theiterator()
is not positioned orDocIdSetIterator.NO_MORE_DOCS
if it has been entirely consumed.- See Also:
DocIdSetIterator.docID()
-
score
public abstract float score() throws IOException
Returns 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 byBulkScorer
which 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 aDocIdSetIterator
over matching documents. The returned iterator will either be positioned on-1
if no documents have been scored yet,DocIdSetIterator.NO_MORE_DOCS
if 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 aTwoPhaseIterator
view of thisScorer
. A return value ofnull
indicates that two-phase iteration is not supported. Note that the returnedTwoPhaseIterator
'sapproximation
must advance synchronously with theiterator()
: advancing the approximation must advance the iterator and vice-versa. Implementing this method is typically useful onScorer
s that have a high per-document overhead in order to confirm matches. The default implementation returnsnull
.
-
-