java.lang.Object
org.apache.lucene.search.BulkScorer
org.apache.lucene.search.TimeLimitingBulkScorer
The
TimeLimitingBulkScorer is used to timeout search requests that take longer than the
maximum allowed search time limit. After this time is exceeded, the search thread is stopped by
throwing a TimeLimitingBulkScorer.TimeExceededException.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classThrown when elapsed search time exceeds allowed search time. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BulkScorer(package private) static final intprivate final QueryTimeout -
Constructor Summary
ConstructorsConstructorDescriptionTimeLimitingBulkScorer(BulkScorer bulkScorer, QueryTimeout queryTimeout) Create a TimeLimitingBulkScorer wrapper over anotherBulkScorerwith a specified timeout. -
Method Summary
Modifier and TypeMethodDescriptionlongcost()Same asDocIdSetIterator.cost()for bulk scorers.intscore(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.Methods inherited from class org.apache.lucene.search.BulkScorer
score
-
Field Details
-
INTERVAL
static final int INTERVAL- See Also:
-
in
-
queryTimeout
-
-
Constructor Details
-
TimeLimitingBulkScorer
Create a TimeLimitingBulkScorer wrapper over anotherBulkScorerwith a specified timeout.- Parameters:
bulkScorer- the wrappedBulkScorerqueryTimeout- max time allowed for collecting hits after whichTimeLimitingBulkScorer.TimeExceededExceptionis thrown
-
-
Method Details
-
score
Description copied from class:BulkScorerCollects 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_DOCSif there are no more matches,- <= the first matching document that is >=
maxotherwise.
minis the minimum document to be considered for matching. All documents strictly before this value must be ignored.Although
maxwould 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:
scorein classBulkScorer- Parameters:
collector- The collector to which all matching documents are passed.acceptDocs-Bitsthat represents the allowed documents to match, ornullif 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
- >=
-
cost
public long cost()Description copied from class:BulkScorerSame asDocIdSetIterator.cost()for bulk scorers.- Specified by:
costin classBulkScorer
-