public final class ParallelAtomicReader extends AtomicReader
AtomicReader
which reads multiple, parallel indexes. Each index
added must have the same number of documents, but typically each contains
different fields. Deletions are taken from the first reader.
Each document contains the union of the fields of all documents
with the same document number. When searching, matches for a
query term are from the first index added that has the field.
This is useful, e.g., with collections that have large fields which change rarely and small fields that change more frequently. The smaller fields may be re-indexed in a new index and both indexes may be searched together.
Warning: It is up to you to make sure all indexes are created and modified the same way. For example, if you add documents to one index, you need to add the same documents in the same order to the other indexes. Failure to do so will result in undefined behavior.
IndexReader.ReaderClosedListener
Constructor and Description |
---|
ParallelAtomicReader(AtomicReader... readers)
Create a ParallelAtomicReader based on the provided
readers; auto-closes the given readers on
IndexReader.close() . |
ParallelAtomicReader(boolean closeSubReaders,
AtomicReader... readers)
Create a ParallelAtomicReader based on the provided
readers.
|
ParallelAtomicReader(boolean closeSubReaders,
AtomicReader[] readers,
AtomicReader[] storedFieldsReaders)
Expert: create a ParallelAtomicReader based on the provided
readers and storedFieldReaders; when a document is
loaded, only storedFieldsReaders will be used.
|
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. |
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() |
docFreq, getContext, hasNorms, termDocsEnum, termPositionsEnum, terms, totalTermFreq
addReaderClosedListener, close, decRef, document, document, ensureOpen, equals, getCombinedCoreAndDeletesKey, getCoreCacheKey, getRefCount, getTermVector, hashCode, incRef, leaves, numDeletedDocs, open, open, open, open, open, registerParentReader, removeReaderClosedListener, tryIncRef
public ParallelAtomicReader(AtomicReader... readers) throws IOException
IndexReader.close()
.IOException
public ParallelAtomicReader(boolean closeSubReaders, AtomicReader... readers) throws IOException
IOException
public ParallelAtomicReader(boolean closeSubReaders, AtomicReader[] readers, AtomicReader[] storedFieldsReaders) throws IOException
IOException
public FieldInfos getFieldInfos()
FieldInfos
describing all fields in
this reader.
NOTE: the returned field numbers will likely not
correspond to the actual field numbers in the underlying
readers, and codec metadata (FieldInfo.getAttribute(String)
will be unavailable.
getFieldInfos
in class AtomicReader
public Bits getLiveDocs()
AtomicReader
Bits
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 AtomicReader
public Fields fields()
AtomicReader
Fields
for this reader.
This method may return null if the reader has no
postings.fields
in class AtomicReader
public int numDocs()
IndexReader
numDocs
in class IndexReader
public int maxDoc()
IndexReader
maxDoc
in class IndexReader
public boolean hasDeletions()
IndexReader
hasDeletions
in class IndexReader
public void document(int docID, StoredFieldVisitor visitor) throws IOException
IndexReader
IndexReader.document(int)
. If you want to load a subset, use
DocumentStoredFieldVisitor
.document
in class IndexReader
IOException
public Fields getTermVectors(int docID) throws IOException
IndexReader
getTermVectors
in class IndexReader
IOException
protected void doClose() throws IOException
IndexReader
doClose
in class IndexReader
IOException
public DocValues docValues(String field) throws IOException
AtomicReader
DocValues
for this field.
This method may return null if the reader has no per-document
values stored.docValues
in class AtomicReader
IOException
public DocValues normValues(String field) throws IOException
AtomicReader
DocValues
for this field's normalization values.
This method may return null if the field has no norms.normValues
in class AtomicReader
IOException
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.