public class ParallelLeafReader extends LeafReader
LeafReader
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.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener
Constructor and Description |
---|
ParallelLeafReader(boolean closeSubReaders,
LeafReader... readers)
Create a ParallelLeafReader based on the provided
readers.
|
ParallelLeafReader(boolean closeSubReaders,
LeafReader[] readers,
LeafReader[] storedFieldsReaders)
Expert: create a ParallelLeafReader based on the provided
readers and storedFieldReaders; when a document is
loaded, only storedFieldsReaders will be used.
|
ParallelLeafReader(LeafReader... readers)
Create a ParallelLeafReader based on the provided
readers; auto-closes the given readers on
IndexReader.close() . |
Modifier and Type | Method and Description |
---|---|
void |
checkIntegrity()
Checks consistency of this reader.
|
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.
|
BinaryDocValues |
getBinaryDocValues(String field)
Returns
BinaryDocValues for this field, or
null if no binary doc values were indexed for
this field. |
IndexReader.CacheHelper |
getCoreCacheHelper()
Optional method: Return a
IndexReader.CacheHelper that can be used to cache
based on the content of this leaf regardless of deletions. |
FieldInfos |
getFieldInfos()
Get the
FieldInfos describing all fields in
this reader. |
Bits |
getLiveDocs()
Returns the
Bits representing live (not
deleted) docs. |
LeafMetaData |
getMetaData()
Return metadata about this leaf.
|
NumericDocValues |
getNormValues(String field)
Returns
NumericDocValues representing norms
for this field, or null if no NumericDocValues
were indexed. |
NumericDocValues |
getNumericDocValues(String field)
Returns
NumericDocValues for this field, or
null if no numeric doc values were indexed for
this field. |
LeafReader[] |
getParallelReaders()
Returns the
LeafReader s that were passed on init. |
PointValues |
getPointValues(String fieldName)
Returns the
PointValues used for numeric or
spatial searches for the given field, or null if there
are no point fields. |
IndexReader.CacheHelper |
getReaderCacheHelper()
Optional method: Return a
IndexReader.CacheHelper that can be used to cache
based on the content of this reader. |
SortedDocValues |
getSortedDocValues(String field)
Returns
SortedDocValues for this field, or
null if no SortedDocValues were indexed for
this field. |
SortedNumericDocValues |
getSortedNumericDocValues(String field)
Returns
SortedNumericDocValues for this field, or
null if no SortedNumericDocValues were indexed for
this field. |
SortedSetDocValues |
getSortedSetDocValues(String field)
Returns
SortedSetDocValues for this field, or
null if no SortedSetDocValues were indexed for
this field. |
Fields |
getTermVectors(int docID)
Retrieve term vectors for this document, or null if
term vectors were not indexed.
|
int |
maxDoc()
Returns one greater than the largest possible document number.
|
int |
numDocs()
Returns the number of documents in this index.
|
Terms |
terms(String field)
Returns the
Terms index for this field, or null if it has none. |
String |
toString() |
docFreq, getContext, getDocCount, getSumDocFreq, getSumTotalTermFreq, postings, postings, totalTermFreq
close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, registerParentReader, tryIncRef
public ParallelLeafReader(LeafReader... readers) throws IOException
IndexReader.close()
.IOException
public ParallelLeafReader(boolean closeSubReaders, LeafReader... readers) throws IOException
IOException
public ParallelLeafReader(boolean closeSubReaders, LeafReader[] readers, LeafReader[] storedFieldsReaders) throws IOException
IOException
public FieldInfos getFieldInfos()
FieldInfos
describing all fields in
this reader.
Note: Implementations should cache the FieldInfos
instance returned by this method such that subsequent
calls to this method return the same instance.
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 LeafReader
public Bits getLiveDocs()
LeafReader
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 LeafReader
public Terms terms(String field) throws IOException
LeafReader
Terms
index for this field, or null if it has none.terms
in class LeafReader
IOException
public int numDocs()
IndexReader
NOTE: This operation may run in O(maxDoc). Implementations that can't return this number in constant-time should cache it.
numDocs
in class IndexReader
public int maxDoc()
IndexReader
maxDoc
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 IndexReader.CacheHelper getCoreCacheHelper()
LeafReader
IndexReader.CacheHelper
that can be used to cache
based on the content of this leaf regardless of deletions. Two readers
that have the same data but different sets of deleted documents or doc
values updates may be considered equal. Consider using
IndexReader.getReaderCacheHelper()
if you need deletions or dv updates to be
taken into account.
A return value of null
indicates that this reader is not suited
for caching, which is typically the case for short-lived wrappers that
alter the content of the wrapped leaf reader.
getCoreCacheHelper
in class LeafReader
public IndexReader.CacheHelper getReaderCacheHelper()
IndexReader
IndexReader.CacheHelper
that can be used to cache
based on the content of this reader. Two readers that have different data
or different sets of deleted documents will be considered different.
A return value of null
indicates that this reader is not suited
for caching, which is typically the case for short-lived wrappers that
alter the content of the wrapped reader.
getReaderCacheHelper
in class IndexReader
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 NumericDocValues getNumericDocValues(String field) throws IOException
LeafReader
NumericDocValues
for this field, or
null if no numeric doc values were indexed for
this field. The returned instance should only be
used by a single thread.getNumericDocValues
in class LeafReader
IOException
public BinaryDocValues getBinaryDocValues(String field) throws IOException
LeafReader
BinaryDocValues
for this field, or
null if no binary doc values were indexed for
this field. The returned instance should only be
used by a single thread.getBinaryDocValues
in class LeafReader
IOException
public SortedDocValues getSortedDocValues(String field) throws IOException
LeafReader
SortedDocValues
for this field, or
null if no SortedDocValues
were indexed for
this field. The returned instance should only be
used by a single thread.getSortedDocValues
in class LeafReader
IOException
public SortedNumericDocValues getSortedNumericDocValues(String field) throws IOException
LeafReader
SortedNumericDocValues
for this field, or
null if no SortedNumericDocValues
were indexed for
this field. The returned instance should only be
used by a single thread.getSortedNumericDocValues
in class LeafReader
IOException
public SortedSetDocValues getSortedSetDocValues(String field) throws IOException
LeafReader
SortedSetDocValues
for this field, or
null if no SortedSetDocValues
were indexed for
this field. The returned instance should only be
used by a single thread.getSortedSetDocValues
in class LeafReader
IOException
public NumericDocValues getNormValues(String field) throws IOException
LeafReader
NumericDocValues
representing norms
for this field, or null if no NumericDocValues
were indexed. The returned instance should only be
used by a single thread.getNormValues
in class LeafReader
IOException
public PointValues getPointValues(String fieldName) throws IOException
LeafReader
PointValues
used for numeric or
spatial searches for the given field, or null if there
are no point fields.getPointValues
in class LeafReader
IOException
public void checkIntegrity() throws IOException
LeafReader
Note that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.
checkIntegrity
in class LeafReader
IOException
public LeafReader[] getParallelReaders()
LeafReader
s that were passed on init.public LeafMetaData getMetaData()
LeafReader
getMetaData
in class LeafReader
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.