public final class SlowCompositeReaderWrapper extends AtomicReader
MultiReader or DirectoryReader) to emulate an
atomic reader. This requires implementing the postings
APIs on-the-fly, using the static methods in MultiFields, MultiDocValues, by stepping through
the sub-readers to merge fields/terms, appending docs, etc.
NOTE: this class almost always results in a
performance hit. If this is important to your use case,
you'll get better performance by gathering the sub readers using
IndexReader.getContext() to get the
atomic leaves and then operate per-AtomicReader,
instead of using this class.
IndexReader.ReaderClosedListener| Constructor and Description |
|---|
SlowCompositeReaderWrapper(CompositeReader reader)
Sole constructor, wrapping the provided
CompositeReader. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doClose()
Implements close.
|
void |
document(int docID,
StoredFieldVisitor visitor)
Expert: visits the fields of a stored document, for
custom processing/loading of each field.
|
DocValues |
docValues(String field)
Returns
DocValues for this field. |
Fields |
fields()
Returns
Fields for this reader. |
Object |
getCombinedCoreAndDeletesKey()
Expert: Returns a key for this IndexReader that also includes deletions,
so FieldCache/CachingWrapperFilter can find it again.
|
Object |
getCoreCacheKey()
Expert: Returns a key for this IndexReader, so FieldCache/CachingWrapperFilter can find
it again.
|
FieldInfos |
getFieldInfos()
Get the
FieldInfos describing all fields in
this reader. |
Bits |
getLiveDocs()
Returns the
Bits representing live (not
deleted) docs. |
Fields |
getTermVectors(int docID)
Retrieve term vectors for this document, or null if
term vectors were not indexed.
|
boolean |
hasDeletions()
Returns true if any documents have been deleted
|
int |
maxDoc()
Returns one greater than the largest possible document number.
|
DocValues |
normValues(String field)
Returns
DocValues for this field's normalization values. |
int |
numDocs()
Returns the number of documents in this index.
|
String |
toString() |
static AtomicReader |
wrap(IndexReader reader)
This method is sugar for getting an
AtomicReader from
an IndexReader of any kind. |
docFreq, getContext, hasNorms, termDocsEnum, termPositionsEnum, terms, totalTermFreqaddReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hashCode, incRef, leaves, numDeletedDocs, open, open, open, open, open, registerParentReader, removeReaderClosedListener, tryIncRefpublic SlowCompositeReaderWrapper(CompositeReader reader) throws IOException
CompositeReader.IOExceptionpublic static AtomicReader wrap(IndexReader reader) throws IOException
AtomicReader from
an IndexReader of any kind. If the reader is already atomic,
it is returned unchanged, otherwise wrapped by this class.IOExceptionpublic Fields fields()
AtomicReaderFields for this reader.
This method may return null if the reader has no
postings.fields in class AtomicReaderpublic DocValues docValues(String field) throws IOException
AtomicReaderDocValues for this field.
This method may return null if the reader has no per-document
values stored.docValues in class AtomicReaderIOExceptionpublic DocValues normValues(String field) throws IOException
AtomicReaderDocValues for this field's normalization values.
This method may return null if the field has no norms.normValues in class AtomicReaderIOExceptionpublic Fields getTermVectors(int docID) throws IOException
IndexReadergetTermVectors in class IndexReaderIOExceptionpublic int numDocs()
IndexReadernumDocs in class IndexReaderpublic int maxDoc()
IndexReadermaxDoc in class IndexReaderpublic void document(int docID,
StoredFieldVisitor visitor)
throws IOException
IndexReaderIndexReader.document(int). If you want to load a subset, use
DocumentStoredFieldVisitor.document in class IndexReaderIOExceptionpublic Bits getLiveDocs()
AtomicReaderBits representing live (not
deleted) docs. A set bit indicates the doc ID has not
been deleted. If this method returns null it means
there are no deleted documents (all documents are
live).
The returned instance has been safely published for
use by multiple threads without additional
synchronization.getLiveDocs in class AtomicReaderpublic FieldInfos getFieldInfos()
AtomicReaderFieldInfos describing all fields in
this reader.getFieldInfos in class AtomicReaderpublic boolean hasDeletions()
IndexReaderhasDeletions in class IndexReaderpublic Object getCoreCacheKey()
IndexReadergetCoreCacheKey in class IndexReaderpublic Object getCombinedCoreAndDeletesKey()
IndexReadergetCombinedCoreAndDeletesKey in class IndexReaderprotected void doClose()
throws IOException
IndexReaderdoClose in class IndexReaderIOExceptionCopyright © 2000-2013 Apache Software Foundation. All Rights Reserved.