Class 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
    • 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