org.apache.lucene.search

## Interface QueryCachingPolicy

All Known Implementing Classes:
  UsageTrackingQueryCachingPolicy

    public interface QueryCachingPolicy

A policy defining which filters should be cached. Implementations of this class must be thread-safe.

See Also:
  `UsageTrackingQueryCachingPolicy`, `LRUQueryCache`
WARNING: This API is experimental and might change in incompatible ways in the next release.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `onUse(Query query)` Callback that is called every time that a cached filter is used.
`boolean` `shouldCache(Query query)` Whether the given `Query` is worth caching.

### Method Detail

#### onUse

    void onUse(Query query)

Callback that is called every time that a cached filter is used. This is typically useful if the policy wants to track usage statistics in order to make decisions.

#### shouldCache

    boolean shouldCache(Query query)
                 throws IOException

Whether the given `Query` is worth caching. This method will be called by the `QueryCache` to know whether to cache. It 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 scorer will be returned.

Throws:
  `IOException`