java.lang.Object
org.apache.lucene.search.BulkScorer
org.apache.lucene.search.Weight.DefaultBulkScorer
- Enclosing class:
- Weight
Just wraps a Scorer and performs top scoring using it.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DocIdSetIterator
private final Scorer
private final TwoPhaseIterator
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlong
cost()
Same asDocIdSetIterator.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 aftermax
.(package private) static void
scoreAll
(LeafCollector collector, DocIdSetIterator iterator, TwoPhaseIterator twoPhase, Bits acceptDocs) Specialized method to bulk-score all hits; we separate this fromscoreRange(org.apache.lucene.search.LeafCollector, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.search.TwoPhaseIterator, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.util.Bits, int, int)
to help out hotspot.(package private) static int
scoreRange
(LeafCollector collector, DocIdSetIterator iterator, TwoPhaseIterator twoPhase, DocIdSetIterator competitiveIterator, Bits acceptDocs, int min, int max) Specialized method to bulk-score a range of hits; we separate this fromscoreAll(org.apache.lucene.search.LeafCollector, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.search.TwoPhaseIterator, org.apache.lucene.util.Bits)
to help out hotspot.Methods inherited from class org.apache.lucene.search.BulkScorer
score
-
Field Details
-
scorer
-
iterator
-
twoPhase
-
-
Constructor Details
-
DefaultBulkScorer
Sole constructor.
-
-
Method Details
-
cost
public long cost()Description copied from class:BulkScorer
Same asDocIdSetIterator.cost()
for bulk scorers.- Specified by:
cost
in classBulkScorer
-
score
Description copied from class:BulkScorer
Collects matching documents in a range and return an estimation of the next matching document which is on or aftermax
.The return value must be:
- >=
max
, DocIdSetIterator.NO_MORE_DOCS
if there are no more matches,- <= the first matching document that is >=
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; }
- Specified by:
score
in classBulkScorer
- Parameters:
collector
- The collector to which all matching documents are passed.acceptDocs
-Bits
that represents the allowed documents to match, ornull
if they are all allowed to match.min
- Score starting at, including, this documentmax
- Score up to, but not including, this doc- Returns:
- an under-estimation of the next matching doc after max
- Throws:
IOException
- >=
-
scoreRange
static int scoreRange(LeafCollector collector, DocIdSetIterator iterator, TwoPhaseIterator twoPhase, DocIdSetIterator competitiveIterator, Bits acceptDocs, int min, int max) throws IOException Specialized method to bulk-score a range of hits; we separate this fromscoreAll(org.apache.lucene.search.LeafCollector, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.search.TwoPhaseIterator, org.apache.lucene.util.Bits)
to help out hotspot. See LUCENE-5487- Throws:
IOException
-
scoreAll
static void scoreAll(LeafCollector collector, DocIdSetIterator iterator, TwoPhaseIterator twoPhase, Bits acceptDocs) throws IOException Specialized method to bulk-score all hits; we separate this fromscoreRange(org.apache.lucene.search.LeafCollector, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.search.TwoPhaseIterator, org.apache.lucene.search.DocIdSetIterator, org.apache.lucene.util.Bits, int, int)
to help out hotspot. See LUCENE-5487- Throws:
IOException
-