public final class UsageTrackingQueryCachingPolicy extends Object implements QueryCachingPolicy
QueryCachingPolicy
that tracks usage statistics of recently-used
filters in order to decide on which filters are worth caching.
It also uses some heuristics on segments, filters and the doc id sets that
they produce in order to cache more aggressively when the execution cost
significantly outweighs the caching overhead.QueryCachingPolicy.CacheOnLargeSegments
ALWAYS_CACHE
Constructor and Description |
---|
UsageTrackingQueryCachingPolicy()
Create a new instance with an history size of 256.
|
UsageTrackingQueryCachingPolicy(int minIndexSize,
float minSizeRatio,
int historySize)
Create a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected int |
minFrequencyToCache(Query query)
For a given query, return how many times it should appear in the history
before being cached.
|
void |
onUse(Query query)
Callback that is called every time that a cached filter is used.
|
boolean |
shouldCache(Query query,
LeafReaderContext context)
Whether the given
DocIdSet should be cached on a given segment. |
public UsageTrackingQueryCachingPolicy(int minIndexSize, float minSizeRatio, int historySize)
minIndexSize
- the minimum size of the top-level indexminSizeRatio
- the minimum size ratio for segments to be cached, see QueryCachingPolicy.CacheOnLargeSegments
historySize
- the number of recently used filters to trackpublic UsageTrackingQueryCachingPolicy()
protected int minFrequencyToCache(Query query)
public void onUse(Query query)
QueryCachingPolicy
onUse
in interface QueryCachingPolicy
public boolean shouldCache(Query query, LeafReaderContext context) throws IOException
QueryCachingPolicy
DocIdSet
should be cached on a given segment.
This method will be called on each leaf context to know if the filter
should be cached on this particular leaf. The filter cache will first
attempt to load a DocIdSet
from the cache. If it is not cached
yet and this method returns true then a cache entry will be
generated. Otherwise an uncached set will be returned.shouldCache
in interface QueryCachingPolicy
IOException
Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.