Module org.apache.lucene.core
Package org.apache.lucene.search
Class LRUQueryCache.CachingWrapperWeight
java.lang.Object
org.apache.lucene.search.Weight
org.apache.lucene.search.ConstantScoreWeight
org.apache.lucene.search.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, Weight.DefaultScorerSupplier -
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 TypeMethodDescriptionprivate 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 queryscorerSupplier(LeafReaderContext context) Get aScorerSupplier, which allows knowing the cost of theScorerbefore building it.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, scoreMethods inherited from class org.apache.lucene.search.Weight
bulkScorer, getQuery, scorer
-
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) -
shouldCache
Check whether this segment is eligible for caching, regardless of the query.- Throws:
IOException
-
scorerSupplier
Description copied from class:WeightGet aScorerSupplier, which allows knowing the cost of theScorerbefore building it. A scorer supplier for the sameLeafReaderContextinstance may be requested multiple times as part of a single search call.Note: It must return null if the scorer is null.
- Specified by:
scorerSupplierin classWeight- Parameters:
context- the leaf reader context- Returns:
- a
ScorerSupplierproviding the scorer, or null if scorer is null - Throws:
IOException- if an IOException occurs- See Also:
-
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
-