Package org.apache.lucene.search
Class FilteredDocIdSet
java.lang.Object
org.apache.lucene.search.DocIdSet
org.apache.lucene.search.FilteredDocIdSet
- Direct Known Subclasses:
BitsFilteredDocIdSet
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:
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
FilteredDocIdSet
Constructor.- Parameters:
innerSet- Underlying DocIdSet
-
-
Method Details
-
isCacheable
public boolean isCacheable()This DocIdSet implementation is cacheable if the inner set is cacheable.- Overrides:
isCacheablein classDocIdSet
-
bits
Description copied from class:DocIdSetOptionally provides aBitsinterface for random access to matching documents.- Overrides:
bitsin classDocIdSet- Returns:
null, if thisDocIdSetdoes not support random access. In contrast toDocIdSet.iterator(), a return value ofnulldoes not imply that no documents match the filter! The default implementation does not provide random access, so you only need to implement this method if your DocIdSet can guarantee random access to every docid in O(1) time without external disk access (asBitsinterface cannot throwIOException). This is generally true for bit sets likeFixedBitSet, which return itself if they are used asDocIdSet.- Throws:
IOException
-
iterator
Implementation of the contract to build a DocIdSetIterator.- Specified by:
iteratorin classDocIdSet- Throws:
IOException- See Also:
-