abstract class DisjunctionScorer extends Scorer
Modifier and Type | Class and Description |
---|---|
private class |
DisjunctionScorer.TwoPhase |
Scorable.ChildScorable
Modifier and Type | Field and Description |
---|---|
private DocIdSetIterator |
approximation |
private BlockMaxDISI |
blockMaxApprox |
private boolean |
needsScores |
private DisiPriorityQueue |
subScorers |
private DisjunctionScorer.TwoPhase |
twoPhase |
Modifier | Constructor and Description |
---|---|
protected |
DisjunctionScorer(Weight weight,
java.util.List<Scorer> subScorers,
ScoreMode scoreMode) |
Modifier and Type | Method and Description |
---|---|
int |
docID()
Returns the doc ID that is currently being scored.
|
(package private) BlockMaxDISI |
getBlockMaxApprox() |
java.util.Collection<Scorable.ChildScorable> |
getChildren()
Returns child sub-scorers positioned on the current document
|
(package private) DisiWrapper |
getSubMatches() |
DocIdSetIterator |
iterator()
Return a
DocIdSetIterator over matching documents. |
float |
score()
Returns the score of the current document matching the query.
|
protected abstract float |
score(DisiWrapper topList)
Compute the score for the given linked list of scorers.
|
TwoPhaseIterator |
twoPhaseIterator()
Optional method: Return a
TwoPhaseIterator view of this
Scorer . |
advanceShallow, getMaxScore, getWeight
setMinCompetitiveScore
private final boolean needsScores
private final DisiPriorityQueue subScorers
private final DocIdSetIterator approximation
private final BlockMaxDISI blockMaxApprox
private final DisjunctionScorer.TwoPhase twoPhase
public DocIdSetIterator iterator()
Scorer
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()
Scorer
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 Scorer.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
.twoPhaseIterator
in class Scorer
public final int docID()
Scorable
BlockMaxDISI getBlockMaxApprox()
DisiWrapper getSubMatches() throws java.io.IOException
java.io.IOException
public final float score() throws java.io.IOException
Scorable
protected abstract float score(DisiWrapper topList) throws java.io.IOException
java.io.IOException
public final java.util.Collection<Scorable.ChildScorable> getChildren() throws java.io.IOException
Scorable
getChildren
in class Scorable
java.io.IOException