Package org.apache.lucene.search
Class ReqOptSumScorer
- java.lang.Object
-
- org.apache.lucene.search.Scorable
-
- org.apache.lucene.search.Scorer
-
- org.apache.lucene.search.ReqOptSumScorer
-
class ReqOptSumScorer extends Scorer
A Scorer for queries with a required part and an optional part. Delays skipTo() on the optional part until a score() is needed.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.search.Scorable
Scorable.ChildScorable
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description ReqOptSumScorer(Scorer reqScorer, Scorer optScorer, ScoreMode scoreMode)
Construct aReqOptScorer
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
advanceShallow(int target)
Advance to the block of documents that containstarget
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 documentfloat
getMaxScore(int upTo)
Return the maximum score that documents between the lasttarget
that this iterator wasshallow-advanced
to included andupTo
included.DocIdSetIterator
iterator()
Return aDocIdSetIterator
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 givenminScore
.TwoPhaseIterator
twoPhaseIterator()
Optional method: Return aTwoPhaseIterator
view of thisScorer
.
-
-
-
Field Detail
-
reqScorer
private final Scorer reqScorer
-
optScorer
private final Scorer optScorer
-
reqApproximation
private final DocIdSetIterator reqApproximation
-
optApproximation
private final DocIdSetIterator optApproximation
-
optTwoPhase
private final TwoPhaseIterator optTwoPhase
-
approximation
private final DocIdSetIterator approximation
-
twoPhase
private final TwoPhaseIterator twoPhase
-
maxScorePropagator
private final MaxScoreSumPropagator maxScorePropagator
-
minScore
private float minScore
-
reqMaxScore
private float reqMaxScore
-
optIsRequired
private boolean optIsRequired
-
-
Constructor Detail
-
ReqOptSumScorer
public ReqOptSumScorer(Scorer reqScorer, Scorer optScorer, ScoreMode scoreMode) throws java.io.IOException
Construct aReqOptScorer
.- Parameters:
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.- Throws:
java.io.IOException
-
-
Method Detail
-
twoPhaseIterator
public TwoPhaseIterator twoPhaseIterator()
Description copied from class:Scorer
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 theScorer.iterator()
: 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
.- Overrides:
twoPhaseIterator
in classScorer
-
iterator
public DocIdSetIterator iterator()
Description copied from class:Scorer
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.
-
docID
public int docID()
Description copied from class:Scorable
Returns the doc ID that is currently being scored.
-
score
public float score() throws java.io.IOException
Description copied from class:Scorable
Returns the score of the current document matching the query.
-
advanceShallow
public int advanceShallow(int target) throws java.io.IOException
Description copied from class:Scorer
Advance to the block of documents that containstarget
in order to get scoring information about this block. This method is implicitly called byDocIdSetIterator.advance(int)
andDocIdSetIterator.nextDoc()
on the returned doc ID. Calling this method doesn't modify the currentDocIdSetIterator.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 toScorer.advanceShallow(int)
so far.- Overrides:
advanceShallow
in classScorer
- Throws:
java.io.IOException
-
getMaxScore
public float getMaxScore(int upTo) throws java.io.IOException
Description copied from class:Scorer
Return the maximum score that documents between the lasttarget
that this iterator wasshallow-advanced
to included andupTo
included.- Specified by:
getMaxScore
in classScorer
- Throws:
java.io.IOException
-
setMinCompetitiveScore
public void setMinCompetitiveScore(float minScore) throws java.io.IOException
Description copied from class:Scorable
Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the givenminScore
. This is a no-op by default. This method may only be called from collectors that useScoreMode.TOP_SCORES
, and successive calls may only set increasing values ofminScore
.- Overrides:
setMinCompetitiveScore
in classScorable
- Throws:
java.io.IOException
-
getChildren
public java.util.Collection<Scorable.ChildScorable> getChildren()
Description copied from class:Scorable
Returns child sub-scorers positioned on the current document- Overrides:
getChildren
in classScorable
-
-