org.apache.lucene.search

## Class FilteredDocIdSet

- java.lang.Object
- - org.apache.lucene.search.DocIdSet
  - - org.apache.lucene.search.FilteredDocIdSet

-     public abstract class FilteredDocIdSet
      extends DocIdSet

  Abstract decorator class for a DocIdSet implementation that provides on-demand filtering/validation mechanism on a given DocIdSet.

  Technically, this same functionality could be achieved with ChainedFilter (under contrib/misc), however the benefit of this class is it never materializes the full bitset for the filter. Instead, the `match(int)` method is invoked on-demand, per docID visited during searching. If you know few docIDs will be visited, and the logic behind `match(int)` is relatively costly, this may be a better way to filter than ChainedFilter.
  See Also:
    `DocIdSet`

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.search.DocIdSet

      `EMPTY_DOCIDSET`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FilteredDocIdSet(DocIdSet innerSet)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isCacheable()` This DocIdSet implementation is cacheable if the inner set is cacheable.
    `DocIdSetIterator` | `iterator()` Implementation of the contract to build a DocIdSetIterator.
    `protected abstract boolean` | `match(int docid)` Validation method to determine whether a docid should be in the result set.

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

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

- - ### Constructor Detail

    - #### FilteredDocIdSet

          public FilteredDocIdSet(DocIdSet innerSet)

      Constructor.
      Parameters:
        `innerSet` - Underlying DocIdSet

  - ### Method Detail

    - #### isCacheable

          public boolean isCacheable()

      This DocIdSet implementation is cacheable if the inner set is cacheable.
      Overrides:
        `isCacheable` in class `DocIdSet`

    - #### match

          protected abstract boolean match(int docid)
                                    throws java.io.IOException

      Validation method to determine whether a docid should be in the result set.
      Parameters:
        `docid` - docid to be tested
      Returns:
        true if input docid should be in the result set, false otherwise.
      Throws:
        `java.io.IOException`

    - #### iterator

          public DocIdSetIterator iterator()
                                    throws java.io.IOException

      Implementation of the contract to build a DocIdSetIterator.
      Specified by:
        `iterator` in class `DocIdSet`
      Throws:
        `java.io.IOException`
      See Also:
        `DocIdSetIterator`, `FilteredDocIdSetIterator`

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