Package org.apache.solr.search
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:
-
Field Summary
Fields inherited from class org.apache.lucene.search.DocIdSet
EMPTYFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.lucene.util.Bitsbits()Collection<org.apache.lucene.util.Accountable> org.apache.lucene.search.DocIdSetReturn the wrappedDocIdSet.org.apache.lucene.search.DocIdSetIteratoriterator()Implementation of the contract to build a DocIdSetIterator.protected abstract booleanmatch(int docid) Validation method to determine whether a docid should be in the result set.longMethods inherited from class org.apache.lucene.search.DocIdSet
all
-
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 wrappedDocIdSet. -
ramBytesUsed
public long ramBytesUsed() -
getChildResources
-
bits
- Overrides:
bitsin classorg.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
Implementation of the contract to build a DocIdSetIterator.- Specified by:
iteratorin classorg.apache.lucene.search.DocIdSet- Throws:
IOException- See Also:
-