Class LRUQueryCache.CachingWrapperWeight
- All Implemented Interfaces:
SegmentCacheable
- Enclosing class:
LRUQueryCache
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.search.Weight
Weight.DefaultBulkScorer -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Weightprivate final QueryCachingPolicyprivate final AtomicBooleanFields inherited from class org.apache.lucene.search.Weight
parentQuery -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbulkScorer(LeafReaderContext context) Optional method, to return aBulkScorerto score the query and send hits to aCollector.private LRUQueryCache.CacheAndCountcache(LeafReaderContext context) private booleancacheEntryHasReasonableWorstCaseSize(int maxDoc) intcount(LeafReaderContext context) Counts the number of live documents that match a givenWeight.parentQueryin a leaf.booleanmatches(LeafReaderContext context, int doc) ReturnsMatchesfor a specific document, ornullif the document does not match the parent queryscorer(LeafReaderContext context) Returns aScorerwhich can iterate in order over all matching documents and assign them a score.scorerSupplier(LeafReaderContext context) Optional method.private booleanshouldCache(LeafReaderContext context) Check whether this segment is eligible for caching, regardless of the query.Methods inherited from class org.apache.lucene.search.ConstantScoreWeight
explain, score
-
Field Details
-
in
-
policy
-
used
-
-
Constructor Details
-
CachingWrapperWeight
CachingWrapperWeight(Weight in, QueryCachingPolicy policy)
-
-
Method Details
-
matches
Description copied from class:WeightReturnsMatchesfor a specific document, ornullif the document does not match the parent queryA query match that contains no position information (for example, a Point or DocValues query) will return
MatchesUtils.MATCH_WITH_NO_TERMS- Overrides:
matchesin classWeight- Parameters:
context- the reader's context to create theMatchesfordoc- the document's id relative to the given context's reader- Throws:
IOException
-
cacheEntryHasReasonableWorstCaseSize
private boolean cacheEntryHasReasonableWorstCaseSize(int maxDoc) -
cache
- Throws:
IOException
-
shouldCache
Check whether this segment is eligible for caching, regardless of the query.- Throws:
IOException
-
scorerSupplier
Description copied from class:WeightOptional method. Get aScorerSupplier, which allows to know the cost of theScorerbefore building it. The default implementation callsWeight.scorer(org.apache.lucene.index.LeafReaderContext)and builds aScorerSupplierwrapper around it.- Overrides:
scorerSupplierin classWeight- Throws:
IOException- See Also:
-
scorer
Description copied from class:WeightReturns aScorerwhich can iterate in order over all matching documents and assign them a score.NOTE: null can be returned if no documents will be scored by this query.
NOTE: The returned
Scorerdoes not haveLeafReader.getLiveDocs()applied, they need to be checked on top.- Specified by:
scorerin classWeight- Parameters:
context- theLeafReaderContextfor which to return theScorer.- Returns:
- a
Scorerwhich scores documents in/out-of order. - Throws:
IOException- if there is a low-level I/O error
-
count
Description copied from class:WeightCounts the number of live documents that match a givenWeight.parentQueryin a leaf.The default implementation returns -1 for every query. This indicates that the count could not be computed in sub-linear time.
Specific query classes should override it to provide other accurate sub-linear implementations (that actually return the count). Look at
MatchAllDocsQuery.createWeight(IndexSearcher, ScoreMode, float)for an exampleWe use this property of the function to count hits in
IndexSearcher.count(Query).- Overrides:
countin classWeight- Parameters:
context- theLeafReaderContextfor which to return the count.- Returns:
- integer count of the number of matches
- Throws:
IOException- if there is a low-level I/O error
-
isCacheable
- Returns:
trueif the object can be cached against a given leaf
-
bulkScorer
Description copied from class:WeightOptional method, to return aBulkScorerto score the query and send hits to aCollector. Only queries that have a different top-level approach need to override this; the default implementation pulls a normalScorerand iterates and collects the resulting hits which are not marked as deleted.- Overrides:
bulkScorerin classWeight- Parameters:
context- theLeafReaderContextfor which to return theScorer.- Returns:
- a
BulkScorerwhich scores documents and passes them to a collector. - Throws:
IOException- if there is a low-level I/O error
-