Class FilteredDocIdSet

java.lang.Object
org.apache.lucene.search.DocIdSet
org.apache.solr.search.FilteredDocIdSet
All Implemented Interfaces:
org.apache.lucene.util.Accountable

public abstract class FilteredDocIdSet extends org.apache.lucene.search.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

    Fields inherited from interface org.apache.lucene.util.Accountable

    NULL_ACCOUNTABLE
  • Constructor Summary

    Constructors
    Constructor
    Description
    FilteredDocIdSet(org.apache.lucene.search.DocIdSet innerSet)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.lucene.util.Bits
     
    Collection<org.apache.lucene.util.Accountable>
     
    org.apache.lucene.search.DocIdSet
    Return the wrapped DocIdSet.
    org.apache.lucene.search.DocIdSetIterator
    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
     

    Methods inherited from class org.apache.lucene.search.DocIdSet

    all

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FilteredDocIdSet

      public FilteredDocIdSet(org.apache.lucene.search.DocIdSet innerSet)
      Constructor.
      Parameters:
      innerSet - Underlying DocIdSet
  • Method Details

    • getDelegate

      public org.apache.lucene.search.DocIdSet getDelegate()
      Return the wrapped DocIdSet.
    • ramBytesUsed

      public long ramBytesUsed()
    • getChildResources

      public Collection<org.apache.lucene.util.Accountable> getChildResources()
    • bits

      public org.apache.lucene.util.Bits bits() throws IOException
      Overrides:
      bits in class org.apache.lucene.search.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 org.apache.lucene.search.DocIdSetIterator iterator() throws IOException
      Implementation of the contract to build a DocIdSetIterator.
      Specified by:
      iterator in class org.apache.lucene.search.DocIdSet
      Throws:
      IOException
      See Also:
      • DocIdSetIterator
      • FilteredDocIdSetIterator