Package 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
    Modifier and Type | Method | Description
    --- | --- | ---
    `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`