Class ValueSourceScorer
- java.lang.Object
-
- org.apache.lucene.search.Scorable
-
- org.apache.lucene.search.Scorer
-
- org.apache.lucene.queries.function.ValueSourceScorer
-
public abstract class ValueSourceScorer extends Scorer
Scorerwhich returns the result ofFunctionValues.floatVal(int)as the score for a document, and which filters out documents that don't matchmatches(int). This Scorer has aTwoPhaseIterator. This is similar toFunctionQuery, with an added filter.Note: If the scores are needed, then the underlying value will probably be fetched/computed twice -- once to filter and next to return the score. If that's non-trivial then consider wrapping it in an implementation that will cache the current value.
- See Also:
FunctionQuery
-
-
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 static intDEF_COSTprivate DocIdSetIteratordisiprivate TwoPhaseIteratortwoPhaseIteratorprotected FunctionValuesvalues
-
Constructor Summary
Constructors Modifier Constructor Description protectedValueSourceScorer(Weight weight, LeafReaderContext readerContext, FunctionValues values)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intdocID()Returns the doc ID that is currently being scored.floatgetMaxScore(int upTo)Return the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.DocIdSetIteratoriterator()Return aDocIdSetIteratorover matching documents.protected floatmatchCost()Cost evaluation function which defines the cost of access for the TwoPhaseIterator for this class This method should be overridden for specifying custom cost methods.abstract booleanmatches(int doc)Override to decide if this document matches.floatscore()Returns the score of the current document matching the query.TwoPhaseIteratortwoPhaseIterator()Optional method: Return aTwoPhaseIteratorview of thisScorer.-
Methods inherited from class org.apache.lucene.search.Scorer
advanceShallow, getWeight
-
Methods inherited from class org.apache.lucene.search.Scorable
getChildren, setMinCompetitiveScore, smoothingScore
-
-
-
-
Field Detail
-
DEF_COST
private static final int DEF_COST
- See Also:
- Constant Field Values
-
values
protected final FunctionValues values
-
twoPhaseIterator
private final TwoPhaseIterator twoPhaseIterator
-
disi
private final DocIdSetIterator disi
-
-
Constructor Detail
-
ValueSourceScorer
protected ValueSourceScorer(Weight weight, LeafReaderContext readerContext, FunctionValues values)
-
-
Method Detail
-
matches
public abstract boolean matches(int doc) throws java.io.IOExceptionOverride to decide if this document matches. It's called byTwoPhaseIterator.matches().- Throws:
java.io.IOException
-
iterator
public DocIdSetIterator iterator()
Description copied from class:ScorerReturn aDocIdSetIteratorover matching documents.The returned iterator will either be positioned on
-1if no documents have been scored yet,DocIdSetIterator.NO_MORE_DOCSif 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.
-
twoPhaseIterator
public TwoPhaseIterator twoPhaseIterator()
Description copied from class:ScorerOptional method: Return aTwoPhaseIteratorview of thisScorer. A return value ofnullindicates that two-phase iteration is not supported.Note that the returned
TwoPhaseIterator'sapproximationmust advance synchronously with theScorer.iterator(): advancing the approximation must advance the iterator and vice-versa.Implementing this method is typically useful on
Scorers that have a high per-document overhead in order to confirm matches.The default implementation returns
null.- Overrides:
twoPhaseIteratorin classScorer
-
docID
public int docID()
Description copied from class:ScorableReturns the doc ID that is currently being scored.
-
score
public float score() throws java.io.IOExceptionDescription copied from class:ScorableReturns the score of the current document matching the query.
-
getMaxScore
public float getMaxScore(int upTo) throws java.io.IOExceptionDescription copied from class:ScorerReturn the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.- Specified by:
getMaxScorein classScorer- Throws:
java.io.IOException
-
matchCost
protected float matchCost()
Cost evaluation function which defines the cost of access for the TwoPhaseIterator for this class This method should be overridden for specifying custom cost methods. Used byTwoPhaseIterator.matchCost()for the instance owned by this class- Returns:
- cost of access
-
-