org.apache.solr.search

## Class FilteredDocIdSet

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

- All Implemented Interfaces:
    Accountable
  Direct Known Subclasses:
    BitsFilteredDocIdSet

      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 queries/), 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`

  - ### 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
    --- | ---
    `Bits` | `bits()`
    `Collection<Accountable>` | `getChildResources()`
    `DocIdSet` | `getDelegate()` Return the wrapped `DocIdSet`.
    `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.
    `long` | `ramBytesUsed()`

    - ### 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

    - #### getDelegate

          public DocIdSet getDelegate()

      Return the wrapped `DocIdSet`.

    - #### ramBytesUsed

          public long ramBytesUsed()

    - #### getChildResources

          public Collection<Accountable> getChildResources()

    - #### bits

          public Bits bits()
                    throws IOException

      Overrides:
        `bits` in class `DocIdSet`
      Throws:
        `IOException`

    - #### match

          protected abstract boolean match(int docid)

      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.

    - #### 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`

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