org.apache.lucene.search

## Class FilterManager

- java.lang.Object
- - org.apache.lucene.search.FilterManager

-     public class FilterManager
      extends java.lang.Object

  Filter caching singleton. It can be used to save filters locally for reuse. This class makes it possible to cache Filters even when using RMI, as it keeps the cache on the searcher side of the RMI connection. Also could be used as a persistent storage for any filter as long as the filter provides a proper hashCode(), as that is used as the key in the cache. The cache is periodically cleaned up from a separate thread to ensure the cache doesn't exceed the maximum size.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `FilterManager.FilterCleaner` Keeps the cache from getting too big.
    `protected class` | `FilterManager.FilterItem` Holds the filter and the last time the filter was used, to make LRU-based cache cleaning possible.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Map` | `cache` The cache itself
    `protected int` | `cacheCleanSize` Maximum allowed cache size
    `protected long` | `cleanSleepTime` Cache cleaning frequency
    `protected static int` | `DEFAULT_CACHE_CLEAN_SIZE` The default maximum number of Filters in the cache
    `protected static long` | `DEFAULT_CACHE_SLEEP_TIME` The default frequency of cache cleanup
    `protected FilterManager.FilterCleaner` | `filterCleaner` Cache cleaner that runs in a separate thread
    `protected static FilterManager` | `manager`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `FilterManager()` Sets up the FilterManager singleton.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Filter` | `getFilter(Filter filter)` Returns the cached version of the filter.
    `static FilterManager` | `getInstance()`
    `void` | `setCacheSize(int cacheCleanSize)` Sets the max size that cache should reach before it is cleaned up
    `void` | `setCleanThreadSleepTime(long cleanSleepTime)` Sets the cache cleaning frequency in milliseconds.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### manager

          protected static FilterManager manager

    - #### DEFAULT_CACHE_CLEAN_SIZE

          protected static final int DEFAULT_CACHE_CLEAN_SIZE

      The default maximum number of Filters in the cache
      See Also:
        Constant Field Values

    - #### DEFAULT_CACHE_SLEEP_TIME

          protected static final long DEFAULT_CACHE_SLEEP_TIME

      The default frequency of cache cleanup
      See Also:
        Constant Field Values

    - #### cache

          protected java.util.Map cache

      The cache itself

    - #### cacheCleanSize

          protected int cacheCleanSize

      Maximum allowed cache size

    - #### cleanSleepTime

          protected long cleanSleepTime

      Cache cleaning frequency

    - #### filterCleaner

          protected FilterManager.FilterCleaner filterCleaner

      Cache cleaner that runs in a separate thread

  - ### Constructor Detail

    - #### FilterManager

          protected FilterManager()

      Sets up the FilterManager singleton.

  - ### Method Detail

    - #### getInstance

          public static FilterManager getInstance()

    - #### setCacheSize

          public void setCacheSize(int cacheCleanSize)

      Sets the max size that cache should reach before it is cleaned up
      Parameters:
        `cacheCleanSize` - maximum allowed cache size

    - #### setCleanThreadSleepTime

          public void setCleanThreadSleepTime(long cleanSleepTime)

      Sets the cache cleaning frequency in milliseconds.
      Parameters:
        `cleanSleepTime` - cleaning frequency in milliseconds

    - #### getFilter

          public Filter getFilter(Filter filter)

      Returns the cached version of the filter. Allows the caller to pass up a small filter but this will keep a persistent version around and allow the caching filter to do its job.
      Parameters:
        `filter` - The input filter
      Returns:
        The cached version of the filter

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