class ReqOptSumScorer extends Scorer
Scorable.ChildScorable
Modifier and Type | Field and Description |
---|---|
private DocIdSetIterator |
approximation |
private MaxScoreSumPropagator |
maxScorePropagator |
private float |
minScore |
private DocIdSetIterator |
optApproximation |
private boolean |
optIsRequired |
private Scorer |
optScorer |
private TwoPhaseIterator |
optTwoPhase |
private DocIdSetIterator |
reqApproximation |
private float |
reqMaxScore |
private Scorer |
reqScorer |
private TwoPhaseIterator |
twoPhase |
Constructor and Description |
---|
ReqOptSumScorer(Scorer reqScorer,
Scorer optScorer,
ScoreMode scoreMode)
Construct a
ReqOptScorer . |
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. |
int |
docID()
Returns the doc ID that is currently being scored.
|
java.util.Collection<Scorable.ChildScorable> |
getChildren()
Returns child sub-scorers positioned on the current document
|
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. |
DocIdSetIterator |
iterator()
Return a
DocIdSetIterator over matching documents. |
float |
score()
Returns the score of the current document matching the query.
|
void |
setMinCompetitiveScore(float minScore)
Optional method: Tell the scorer that its iterator may safely ignore all
documents whose score is less than the given
minScore . |
TwoPhaseIterator |
twoPhaseIterator()
Optional method: Return a
TwoPhaseIterator view of this
Scorer . |
private final Scorer reqScorer
private final Scorer optScorer
private final DocIdSetIterator reqApproximation
private final DocIdSetIterator optApproximation
private final TwoPhaseIterator optTwoPhase
private final DocIdSetIterator approximation
private final TwoPhaseIterator twoPhase
private final MaxScoreSumPropagator maxScorePropagator
private float minScore
private float reqMaxScore
private boolean optIsRequired
public ReqOptSumScorer(Scorer reqScorer, Scorer optScorer, ScoreMode scoreMode) throws java.io.IOException
ReqOptScorer
.reqScorer
- The required scorer. This must match.optScorer
- The optional scorer. This is used for scoring only.scoreMode
- How the produced scorers will be consumed.java.io.IOException
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 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 int docID()
Scorable
public float score() throws java.io.IOException
Scorable
public int advanceShallow(int target) throws java.io.IOException
Scorer
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 Scorer.advanceShallow(int)
so far.advanceShallow
in class Scorer
java.io.IOException
public float getMaxScore(int upTo) throws java.io.IOException
Scorer
target
that this iterator was shallow-advanced
to
included and upTo
included.getMaxScore
in class Scorer
java.io.IOException
public void setMinCompetitiveScore(float minScore) throws java.io.IOException
Scorable
minScore
. This is a
no-op by default.
This method may only be called from collectors that use
ScoreMode.TOP_SCORES
, and successive calls may only set increasing
values of minScore
.setMinCompetitiveScore
in class Scorable
java.io.IOException
public java.util.Collection<Scorable.ChildScorable> getChildren()
Scorable
getChildren
in class Scorable