## 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
`FilteredDocIdSet(DocIdSet innerSet)` Constructor.

Method Summary
`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 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:
    `IOException`

### iterator

    public DocIdSetIterator iterator()
                              throws IOException

  Implementation of the contract to build a DocIdSetIterator.

  Specified by:
    `iterator` in class `DocIdSet`
  Throws:
    `IOException`
  See Also:
    `DocIdSetIterator`, `FilteredDocIdSetIterator`