Package 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 thematchDoc(int)
method is not optimized, as iterators simply increment the document id untilmatchDoc(int)
returns true. Because of thismatchDoc(int)
must be as fast as possible and in no case do any I/O.
-
-
Field Summary
Fields Modifier and Type Field Description protected Bits
acceptDocs
protected int
maxDoc
-
Constructor Summary
Constructors Constructor Description FieldCacheDocIdSet(int maxDoc, Bits acceptDocs)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Bits
bits()
Optionally provides aBits
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 aDocIdSetIterator
to access the set.protected abstract boolean
matchDoc(int doc)
this method checks, if a doc is a hit
-
-
-
Field Detail
-
maxDoc
protected final int maxDoc
-
acceptDocs
protected final Bits acceptDocs
-
-
Constructor Detail
-
FieldCacheDocIdSet
public FieldCacheDocIdSet(int maxDoc, Bits acceptDocs)
-
-
Method Detail
-
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 classDocIdSet
-
bits
public final Bits bits()
Description copied from class:DocIdSet
Optionally provides aBits
interface for random access to matching documents.- Overrides:
bits
in classDocIdSet
- Returns:
null
, if thisDocIdSet
does not support random access. In contrast toDocIdSet.iterator()
, a return value ofnull
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 (asBits
interface cannot throwIOException
). This is generally true for bit sets likeFixedBitSet
, which return itself if they are used asDocIdSet
.
-
iterator
public final DocIdSetIterator iterator() throws IOException
Description copied from class:DocIdSet
Provides aDocIdSetIterator
to access the set. This implementation can returnnull
if there are no docs that match.- Specified by:
iterator
in classDocIdSet
- Throws:
IOException
-
-