org.apache.lucene.search
Class FieldCacheDocIdSet
java.lang.Object
org.apache.lucene.search.DocIdSet
org.apache.lucene.search.FieldCacheDocIdSet
public abstract class FieldCacheDocIdSet
- extends DocIdSet
Base class for DocIdSet to be used with FieldCache. The implementation
of its iterator is very stupid and slow if the implementation of the
matchDoc(int)
method is not optimized, as iterators simply increment
the document id until matchDoc(int)
returns true. Because of this
matchDoc(int)
must be as fast as possible and in no case do any
I/O.
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
Method Summary |
Bits |
bits()
Optionally provides a Bits interface for random access
to matching documents. |
boolean |
isCacheable()
this DocIdSet is always cacheable (does not go back
to the reader for iteration) |
DocIdSetIterator |
iterator()
Provides a DocIdSetIterator to access the set. |
protected abstract boolean |
matchDoc(int doc)
this method checks, if a doc is a hit |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
maxDoc
protected final int maxDoc
acceptDocs
protected final Bits acceptDocs
FieldCacheDocIdSet
public FieldCacheDocIdSet(int maxDoc,
Bits acceptDocs)
matchDoc
protected abstract boolean matchDoc(int doc)
- this method checks, if a doc is a hit
isCacheable
public final boolean isCacheable()
- this DocIdSet is always cacheable (does not go back
to the reader for iteration)
- Overrides:
isCacheable
in class DocIdSet
bits
public final Bits bits()
- Description copied from class:
DocIdSet
- Optionally provides a
Bits
interface for random access
to matching documents.
- Overrides:
bits
in class DocIdSet
- Returns:
null
, 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
.
iterator
public final DocIdSetIterator iterator()
throws IOException
- Description copied from class:
DocIdSet
- Provides a
DocIdSetIterator
to access the set.
This implementation can return null
or
DocIdSet.EMPTY_DOCIDSET.iterator()
if there
are no docs that match.
- Specified by:
iterator
in class DocIdSet
- Throws:
IOException
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.