protected class ConstantScoreQuery.ConstantBulkScorer extends BulkScorer
BulkScorer so that if the CSQ
wraps a query with its own optimized top-level
scorer (e.g. BooleanScorer) we can use that
top-level scorer.| Constructor and Description |
|---|
ConstantScoreQuery.ConstantBulkScorer(BulkScorer bulkScorer,
Weight weight,
float theScore) |
| Modifier and Type | Method and Description |
|---|---|
long |
cost()
Same as
DocIdSetIterator.cost() for bulk scorers. |
int |
score(LeafCollector collector,
int min,
int max)
Collects matching documents in a range and return an estimation of the
next matching document which is on or after
max. |
scorepublic ConstantScoreQuery.ConstantBulkScorer(BulkScorer bulkScorer, Weight weight, float theScore)
public int score(LeafCollector collector, int min, int max) throws IOException
BulkScorermax.
The return value must be:
max,DocIdSetIterator.NO_MORE_DOCS if there are no more matches,max otherwise.min is the minimum document to be considered for matching. All
documents strictly before this value must be ignored.
Although max would be a legal return value for this method, higher
values might help callers skip more efficiently over non-matching portions
of the docID space.
For instance, a Scorer-based implementation could look like
below:
private final Scorer scorer; // set via constructor
public int score(LeafCollector collector, int min, int max) throws IOException {
collector.setScorer(scorer);
int doc = scorer.docID();
if (doc < min) {
doc = scorer.advance(min);
}
while (doc < max) {
collector.collect(doc);
doc = scorer.nextDoc();
}
return doc;
}
score in class BulkScorercollector - The collector to which all matching documents are passed.min - Score starting at, including, this documentmax - Score up to, but not including, this docIOExceptionpublic long cost()
BulkScorerDocIdSetIterator.cost() for bulk scorers.cost in class BulkScorerCopyright © 2000-2015 Apache Software Foundation. All Rights Reserved.