org.apache.lucene.facet.complements

## Class TotalFacetCountsCache

- java.lang.Object
- - org.apache.lucene.facet.complements.TotalFacetCountsCache

-     public final class TotalFacetCountsCache
      extends Object

  Manage an LRU cache for `TotalFacetCounts` per index, taxonomy, and facet indexing params.
  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 int` | `DEFAULT_CACHE_SIZE` Default size of in memory cache for computed total facet counts.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Clear the cache.
    `int` | `getCacheSize()`
    `static TotalFacetCountsCache` | `getSingleton()` Get the single instance of this cache
    `TotalFacetCounts` | `getTotalCounts(IndexReader indexReader, TaxonomyReader taxonomy, FacetIndexingParams facetIndexingParams)` Get the total facet counts for a reader/taxonomy pair and facet indexing parameters.
    `void` | `load(File inputFile, IndexReader indexReader, TaxonomyReader taxonomy, FacetIndexingParams facetIndexingParams)` Load `TotalFacetCounts` matching input parameters from the provided outputFile and add them into the cache for the provided indexReader, taxonomy, and facetIndexingParams.
    `void` | `setCacheSize(int size)` Set the number of TotalFacetCounts arrays that will remain in memory cache.
    `void` | `store(File outputFile, IndexReader indexReader, TaxonomyReader taxonomy, FacetIndexingParams facetIndexingParams)` Store the `TotalFacetCounts` matching input parameters into the provided outputFile, making them available for a later call to `load(File, IndexReader, TaxonomyReader, FacetIndexingParams)`.

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

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

- - ### Field Detail

    - #### DEFAULT_CACHE_SIZE

          public static final int DEFAULT_CACHE_SIZE

      Default size of in memory cache for computed total facet counts. Set to 2 for the case when an application reopened a reader and the original one is still in use (Otherwise there will be switching again and again between the two.)
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getSingleton

          public static TotalFacetCountsCache getSingleton()

      Get the single instance of this cache

    - #### getTotalCounts

          public TotalFacetCounts getTotalCounts(IndexReader indexReader,
                                        TaxonomyReader taxonomy,
                                        FacetIndexingParams facetIndexingParams)
                                          throws IOException

      Get the total facet counts for a reader/taxonomy pair and facet indexing parameters. If not in cache, computed here and added to the cache for later use.
      Parameters:
        `indexReader` - the documents index
        `taxonomy` - the taxonomy index
        `facetIndexingParams` - facet indexing parameters
      Returns:
        the total facet counts.
      Throws:
        `IOException`

    - #### load

          public void load(File inputFile,
                  IndexReader indexReader,
                  TaxonomyReader taxonomy,
                  FacetIndexingParams facetIndexingParams)
                    throws IOException

      Load `TotalFacetCounts` matching input parameters from the provided outputFile and add them into the cache for the provided indexReader, taxonomy, and facetIndexingParams. If a `TotalFacetCounts` for these parameters already exists in the cache, it will be replaced by the loaded one.
      Parameters:
        `inputFile` - file from which to read the data
        `indexReader` - the documents index
        `taxonomy` - the taxonomy index
        `facetIndexingParams` - the facet indexing parameters
      Throws:
        `IOException` - on error

    - #### store

          public void store(File outputFile,
                   IndexReader indexReader,
                   TaxonomyReader taxonomy,
                   FacetIndexingParams facetIndexingParams)
                     throws IOException

      Store the `TotalFacetCounts` matching input parameters into the provided outputFile, making them available for a later call to `load(File, IndexReader, TaxonomyReader, FacetIndexingParams)`. If these `TotalFacetCounts` are available in the cache, they are used. But if they are not in the cache, this call will first compute them (which will also add them to the cache).
      Parameters:
        `outputFile` - file to store in.
        `indexReader` - the documents index
        `taxonomy` - the taxonomy index
        `facetIndexingParams` - the facet indexing parameters
      Throws:
        `IOException` - on error
      See Also:
        `load(File, IndexReader, TaxonomyReader, FacetIndexingParams)`

    - #### clear

          public void clear()

      Clear the cache.

    - #### getCacheSize

          public int getCacheSize()

      Returns:
        the maximal cache size

    - #### setCacheSize

          public void setCacheSize(int size)

      Set the number of TotalFacetCounts arrays that will remain in memory cache.

      If new size is smaller than current size, the cache is appropriately trimmed.

      Minimal size is 1, so passing zero or negative size would result in size of 1.

      Parameters:
        `size` - new size to set

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