public abstract class Scorer extends Object
A Scorer
exposes an iterator()
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.
Modifier and Type | Class and Description |
---|---|
static class |
Scorer.ChildScorer
A child Scorer and its relationship to its parent.
|
Modifier and Type | Field and Description |
---|---|
protected Weight |
weight
the Scorer's parent Weight.
|
Modifier | Constructor and Description |
---|---|
protected |
Scorer(Weight weight)
Constructs a Scorer
|
Modifier and Type | Method and Description |
---|---|
abstract int |
docID()
Returns the doc ID that is currently being scored.
|
abstract int |
freq()
Returns the freq of this Scorer on the current document
|
Collection<Scorer.ChildScorer> |
getChildren()
Returns child sub-scorers positioned on the current document
Note that this method should not be called on Scorers passed to
LeafCollector.setScorer(Scorer) ,
as these may be synthetic Scorers produced by BulkScorer which will throw an Exception. |
Weight |
getWeight()
returns parent Weight
|
abstract DocIdSetIterator |
iterator()
Return a
DocIdSetIterator over matching documents. |
abstract float |
score()
Returns the score of the current document matching the query.
|
TwoPhaseIterator |
twoPhaseIterator()
Optional method: Return a
TwoPhaseIterator view of this
Scorer . |
protected final Weight weight
protected Scorer(Weight weight)
weight
- The scorers Weight
.public abstract int docID()
-1
if the iterator()
is not positioned
or DocIdSetIterator.NO_MORE_DOCS
if it has been entirely consumed.DocIdSetIterator.docID()
public abstract float score() throws IOException
DocIdSetIterator.nextDoc()
or
DocIdSetIterator.advance(int)
is called on the iterator()
the first time, or when called from within LeafCollector.collect(int)
.IOException
public abstract int freq() throws IOException
IOException
public Weight getWeight()
public Collection<Scorer.ChildScorer> getChildren() throws IOException
LeafCollector.setScorer(Scorer)
,
as these may be synthetic Scorers produced by BulkScorer
which will throw an Exception.IOException
public abstract DocIdSetIterator iterator()
DocIdSetIterator
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.public TwoPhaseIterator twoPhaseIterator()
TwoPhaseIterator
view of this
Scorer
. A return value of null
indicates that
two-phase iteration is not supported.
Note that the returned TwoPhaseIterator
's
approximation
must
advance synchronously with the iterator()
: advancing the
approximation must advance the iterator and vice-versa.
Implementing this method is typically useful on Scorer
s
that have a high per-document overhead in order to confirm matches.
The default implementation returns null
.Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.