|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.lucene.search.DocIdSet
org.apache.lucene.search.FilteredDocIdSet
public abstract class FilteredDocIdSet
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, thematch(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.
DocIdSet| Field Summary |
|---|
| Fields inherited from class org.apache.lucene.search.DocIdSet |
|---|
EMPTY_DOCIDSET |
| Constructor Summary | |
|---|---|
FilteredDocIdSet(DocIdSet innerSet)
Constructor. |
|
| Method Summary | |
|---|---|
Bits |
bits()
Optionally provides a Bits interface for random access
to matching documents. |
boolean |
isCacheable()
This DocIdSet implementation is cacheable if the inner set is cacheable. |
DocIdSetIterator |
iterator()
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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FilteredDocIdSet(DocIdSet innerSet)
innerSet - Underlying DocIdSet| Method Detail |
|---|
public boolean isCacheable()
isCacheable in class DocIdSet
public Bits bits()
throws IOException
DocIdSetBits interface for random access
to matching documents.
bits in class DocIdSetnull, if this DocIdSet does not support random access.
In contrast to DocIdSet.iterator(), a return value of null
does 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 (as Bits interface cannot throw
IOException). This is generally true for bit sets
like FixedBitSet, which return
itself if they are used as DocIdSet.
IOExceptionprotected abstract boolean match(int docid)
docid - docid to be tested
public DocIdSetIterator iterator()
throws IOException
iterator in class DocIdSetIOExceptionDocIdSetIterator,
FilteredDocIdSetIterator
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||