protected static 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.| Modifier and Type | Field and Description |
|---|---|
(package private) BulkScorer |
bulkScorer |
(package private) float |
theScore |
(package private) Weight |
weight |
| Constructor and Description |
|---|
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,
Bits acceptDocs,
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. |
private LeafCollector |
wrapCollector(LeafCollector collector) |
scorefinal BulkScorer bulkScorer
final Weight weight
final float theScore
public ConstantBulkScorer(BulkScorer bulkScorer, Weight weight, float theScore)
public int score(LeafCollector collector, Bits acceptDocs, int min, int max) throws java.io.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, Bits acceptDocs, int min, int max) throws IOException {
collector.setScorer(scorer);
int doc = scorer.docID();
if (doc < min) {
doc = scorer.advance(min);
}
while (doc < max) {
if (acceptDocs == null || acceptDocs.get(doc)) {
collector.collect(doc);
}
doc = scorer.nextDoc();
}
return doc;
}
score in class BulkScorercollector - The collector to which all matching documents are passed.acceptDocs - Bits that represents the allowed documents to match, or
null if they are all allowed to match.min - Score starting at, including, this documentmax - Score up to, but not including, this docjava.io.IOExceptionprivate LeafCollector wrapCollector(LeafCollector collector)
public long cost()
BulkScorerDocIdSetIterator.cost() for bulk scorers.cost in class BulkScorer