public class ScoreCachingWrappingScorer extends FilterScorer
Scorer which wraps another scorer and caches the score of the
current document. Successive calls to score() will return the same
result and will not invoke the wrapped Scorer's score() method, unless the
current document has changed.Collector
interface, in which the score is not computed for a document by default, only
if the collector requests it. Some collectors may need to use the score in
several places, however all they have in hand is a Scorer object, and
might end up computing the score of a document more than once.Scorer.ChildScorerin| Constructor and Description |
|---|
ScoreCachingWrappingScorer(Scorer scorer)
Creates a new instance by wrapping the given scorer.
|
| Modifier and Type | Method and Description |
|---|---|
Collection<Scorer.ChildScorer> |
getChildren()
Returns child sub-scorers positioned on the current document
Note that this method should not be called on Scorers passed to
LeafCollector.setScorer(Scorer),
as these may be synthetic Scorers produced by BulkScorer which will throw an Exception. |
float |
score()
Returns the score of the current document matching the query.
|
docID, iterator, twoPhaseIteratorpublic ScoreCachingWrappingScorer(Scorer scorer)
public float score()
throws IOException
ScorerDocIdSetIterator.nextDoc() or
DocIdSetIterator.advance(int) is called on the Scorer.iterator()
the first time, or when called from within LeafCollector.collect(int).score in class FilterScorerIOExceptionpublic Collection<Scorer.ChildScorer> getChildren()
ScorerLeafCollector.setScorer(Scorer),
as these may be synthetic Scorers produced by BulkScorer which will throw an Exception.getChildren in class ScorerCopyright © 2000-2018 Apache Software Foundation. All Rights Reserved.