Package org.apache.lucene.search
Class DisjunctionMaxScorer
- java.lang.Object
-
- org.apache.lucene.search.Scorable
-
- org.apache.lucene.search.Scorer
-
- org.apache.lucene.search.DisjunctionScorer
-
- org.apache.lucene.search.DisjunctionMaxScorer
-
final class DisjunctionMaxScorer extends DisjunctionScorer
The Scorer for DisjunctionMaxQuery. The union of all documents generated by the subquery scorers is generated in document number order. The score for each document is the maximum of the scores computed by the subquery scorers that generate that document, plus tieBreakerMultiplier times the sum of the scores for the other subqueries that generate the document.
-
-
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 DisjunctionScoreBlockBoundaryPropagator
disjunctionBlockPropagator
private java.util.List<Scorer>
subScorers
private float
tieBreakerMultiplier
-
Constructor Summary
Constructors Constructor Description DisjunctionMaxScorer(Weight weight, float tieBreakerMultiplier, java.util.List<Scorer> subScorers, ScoreMode scoreMode)
Creates a new instance of DisjunctionMaxScorer
-
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.float
getMaxScore(int upTo)
Return the maximum score that documents between the lasttarget
that this iterator wasshallow-advanced
to included andupTo
included.protected float
score(DisiWrapper topList)
Compute the score for the given linked list of scorers.void
setMinCompetitiveScore(float minScore)
Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the givenminScore
.-
Methods inherited from class org.apache.lucene.search.DisjunctionScorer
docID, getBlockMaxApprox, getChildren, getSubMatches, iterator, score, twoPhaseIterator
-
Methods inherited from class org.apache.lucene.search.Scorable
smoothingScore
-
-
-
-
Field Detail
-
subScorers
private final java.util.List<Scorer> subScorers
-
tieBreakerMultiplier
private final float tieBreakerMultiplier
-
disjunctionBlockPropagator
private final DisjunctionScoreBlockBoundaryPropagator disjunctionBlockPropagator
-
-
Constructor Detail
-
DisjunctionMaxScorer
DisjunctionMaxScorer(Weight weight, float tieBreakerMultiplier, java.util.List<Scorer> subScorers, ScoreMode scoreMode) throws java.io.IOException
Creates a new instance of DisjunctionMaxScorer- Parameters:
weight
- The Weight to be used.tieBreakerMultiplier
- Multiplier applied to non-maximum-scoring subqueries for a document as they are summed into the result.subScorers
- The sub scorers this Scorer should iterate on- Throws:
java.io.IOException
-
-
Method Detail
-
score
protected float score(DisiWrapper topList) throws java.io.IOException
Description copied from class:DisjunctionScorer
Compute the score for the given linked list of scorers.- Specified by:
score
in classDisjunctionScorer
- Throws:
java.io.IOException
-
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 use
ScoreMode.TOP_SCORES
, and successive calls may only set increasing values ofminScore
.- Overrides:
setMinCompetitiveScore
in classScorable
- Throws:
java.io.IOException
-
-