## org.apache.lucene.search
Class CachingWrapperFilter

    java.lang.Object
      org.apache.lucene.search.Filter
          org.apache.lucene.search.CachingWrapperFilter

All Implemented Interfaces:
  java.io.Serializable

Direct Known Subclasses:
  QueryFilter

    public class CachingWrapperFilter

extends Filter

Wraps another filter's result and caches it. The purpose is to allow filters to simply filter, and then wrap with this class to add caching.

See Also:
  Serialized Form

Nested Class Summary
`static class` `CachingWrapperFilter.DeletesMode` Expert: Specifies how new deletions against a reopened reader should be handled.

Field Summary
`protected org.apache.lucene.search.CachingWrapperFilter.FilterCache` `cache`
`protected Filter` `filter`

Constructor Summary
`CachingWrapperFilter(Filter filter)` New deletes are ignored by default, which gives higher cache hit rate on reopened readers.
`CachingWrapperFilter(Filter filter, CachingWrapperFilter.DeletesMode deletesMode)` Expert: by default, the cached filter will be shared across reopened segments that only had changes to their deletions.

Method Summary
`java.util.BitSet` `bits(IndexReader reader)` Deprecated. Use `getDocIdSet(IndexReader)` instead.
`protected DocIdSet` `docIdSetToCache(DocIdSet docIdSet, IndexReader reader)` Provide the DocIdSet to be cached, using the DocIdSet provided by the wrapped Filter.
`boolean` `equals(java.lang.Object o)`
`DocIdSet` `getDocIdSet(IndexReader reader)` Creates a `DocIdSet` enumerating the documents that should be permitted in search results.
`int` `hashCode()`
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### filter

    protected Filter filter

### cache

    protected final org.apache.lucene.search.CachingWrapperFilter.FilterCache cache

Constructor Detail

### CachingWrapperFilter

    public CachingWrapperFilter(Filter filter)

  New deletes are ignored by default, which gives higher cache hit rate on reopened readers. Most of the time this is safe, because the filter will be AND'd with a Query that fully enforces deletions. If instead you need this filter to always enforce deletions, pass either `CachingWrapperFilter.DeletesMode.RECACHE` or `CachingWrapperFilter.DeletesMode.DYNAMIC`.

  Parameters:
    `filter` - Filter to cache results of

### CachingWrapperFilter

    public CachingWrapperFilter(Filter filter,
                                CachingWrapperFilter.DeletesMode deletesMode)

  Expert: by default, the cached filter will be shared across reopened segments that only had changes to their deletions.

  Parameters:
    `filter` - Filter to cache results of
    `deletesMode` - See `CachingWrapperFilter.DeletesMode`

Method Detail

### bits

    public java.util.BitSet bits(IndexReader reader)
                          throws java.io.IOException

  Deprecated. Use `getDocIdSet(IndexReader)` instead.

  Overrides:
    `bits` in class `Filter`
  Returns:
    A BitSet with true for documents which should be permitted in search results, and false for those that should not.

    NOTE: See `Filter.getDocIdSet(IndexReader)` for handling of multi-segment indexes (which applies to this method as well).

  Throws:
    `java.io.IOException`

### docIdSetToCache

    protected DocIdSet docIdSetToCache(DocIdSet docIdSet,
                                       IndexReader reader)
                                throws java.io.IOException

  Provide the DocIdSet to be cached, using the DocIdSet provided by the wrapped Filter.

  This implementation returns the given `DocIdSet`, if `DocIdSet.isCacheable()` returns `true`, else it copies the `DocIdSetIterator` into an `OpenBitSetDISI`.

  Throws:
    `java.io.IOException`

### getDocIdSet

    public DocIdSet getDocIdSet(IndexReader reader)
                         throws java.io.IOException

  Description copied from class: `Filter`
  Creates a `DocIdSet` enumerating the documents that should be permitted in search results. NOTE: null can be returned if no documents are accepted by this Filter.

  Note: This method will be called once per segment in the index during searching. The returned `DocIdSet` must refer to document IDs for that segment, not for the top-level reader.

  Overrides:
    `getDocIdSet` in class `Filter`
  Parameters:
    `reader` - a `IndexReader` instance opened on the index currently searched on. Note, it is likely that the provided reader does not represent the whole underlying index i.e. if the index has more than one segment the given reader only represents a single segment.
  Returns:
    a DocIdSet that provides the documents which should be permitted or prohibited in search results. NOTE: null can be returned if no documents will be accepted by this Filter.
  Throws:
    `java.io.IOException`
  See Also:
    `DocIdBitSet`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### equals

    public boolean equals(java.lang.Object o)

  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

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