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.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static QueryCachingPolicy` | `ALWAYS_CACHE` A simple policy that caches all the provided filters on all segments.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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.

- - ### Field Detail

    - #### ALWAYS_CACHE

          static final QueryCachingPolicy ALWAYS_CACHE

      A simple policy that caches all the provided filters on all segments.

  - ### 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`

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.