public abstract class

FilteredDocIdSet

extends DocIdSet
java.lang.Object
   ↳ org.apache.lucene.search.DocIdSet
     ↳ org.apache.lucene.search.FilteredDocIdSet

Class Overview

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

Summary

[Expand]
Inherited Fields
From class org.apache.lucene.search.DocIdSet
Public Constructors
FilteredDocIdSet(DocIdSet innerSet)
Constructor.
Public Methods
boolean isCacheable()
This DocIdSet implementation is cacheable if the inner set is cacheable.
DocIdSetIterator iterator()
Implementation of the contract to build a DocIdSetIterator.
Protected Methods
abstract boolean match(int docid)
Validation method to determine whether a docid should be in the result set.
[Expand]
Inherited Methods
From class org.apache.lucene.search.DocIdSet
From class java.lang.Object

Public Constructors

public FilteredDocIdSet (DocIdSet innerSet)

Constructor.

Parameters
innerSet Underlying DocIdSet

Public Methods

public boolean isCacheable ()

This DocIdSet implementation is cacheable if the inner set is cacheable.

public DocIdSetIterator iterator ()

Implementation of the contract to build a DocIdSetIterator.

Throws
IOException

Protected Methods

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.
Throws
IOException