public abstract class Scorer extends Scorable
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.
Scorable.ChildScorable
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 |
---|---|
int |
advanceShallow(int target)
Advance to the block of documents that contains
target in order to
get scoring information about this block. |
abstract float |
getMaxScore(int upTo)
Return the maximum score that documents between the last
target
that this iterator was shallow-advanced to
included and upTo included. |
Weight |
getWeight()
returns parent Weight
|
abstract DocIdSetIterator |
iterator()
Return a
DocIdSetIterator over matching documents. |
TwoPhaseIterator |
twoPhaseIterator()
Optional method: Return a
TwoPhaseIterator view of this
Scorer . |
docID, getChildren, score, setMinCompetitiveScore, smoothingScore
protected final Weight weight
protected Scorer(Weight weight)
weight
- The scorers Weight
.public Weight getWeight()
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
.public int advanceShallow(int target) throws IOException
target
in order to
get scoring information about this block. This method is implicitly called
by DocIdSetIterator.advance(int)
and
DocIdSetIterator.nextDoc()
on the returned doc ID. Calling this
method doesn't modify the current DocIdSetIterator.docID()
.
It returns a number that is greater than or equal to all documents
contained in the current block, but less than any doc IDS of the next block.
target
must be >= Scorable.docID()
as well as all targets that
have been passed to advanceShallow(int)
so far.IOException
public abstract float getMaxScore(int upTo) throws IOException
target
that this iterator was shallow-advanced
to
included and upTo
included.IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.