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 Weight
private final QueryCachingPolicy
private final AtomicBoolean
Fields inherited from class org.apache.lucene.search.Weight
parentQuery
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
cacheEntryHasReasonableWorstCaseSize
(int maxDoc) int
count
(LeafReaderContext context) Counts the number of live documents that match a givenWeight.parentQuery
in a leaf.boolean
matches
(LeafReaderContext context, int doc) ReturnsMatches
for a specific document, ornull
if the document does not match the parent queryscorerSupplier
(LeafReaderContext context) Get aScorerSupplier
, which allows knowing the cost of theScorer
before building it.private boolean
shouldCache
(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
Methods 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:Weight
ReturnsMatches
for a specific document, ornull
if 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:
matches
in classWeight
- Parameters:
context
- the reader's context to create theMatches
fordoc
- 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:Weight
Get aScorerSupplier
, which allows knowing the cost of theScorer
before building it. A scorer supplier for the sameLeafReaderContext
instance may be requested multiple times as part of a single search call.Note: It must return null if the scorer is null.
- Specified by:
scorerSupplier
in classWeight
- Parameters:
context
- the leaf reader context- Returns:
- a
ScorerSupplier
providing the scorer, or null if scorer is null - Throws:
IOException
- if an IOException occurs- See Also:
-
count
Description copied from class:Weight
Counts the number of live documents that match a givenWeight.parentQuery
in 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:
count
in classWeight
- Parameters:
context
- theLeafReaderContext
for 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:
true
if the object can be cached against a given leaf
-