- All Implemented Interfaces:
Closeable
,AutoCloseable
Instances pointing to the same segment (but with different deletes, etc) may share the same core data.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader
IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final SegmentCoreReaders
private final IndexReader.CacheHelper
Wrap the cache helper of the core to add ensureOpen() calls that make sure users do not register closed listeners on closed indices.(package private) final DocValuesProducer
(package private) final FieldInfos
private final Bits
(package private) final boolean
True if we are holding RAM only liveDocs or DV updates, i.e.private final Bits
private final LeafMetaData
private final int
private final SegmentCommitInfo
private final IndexReader.CacheHelper
private final Set
<IndexReader.ClosedListener> (package private) final SegmentDocValues
private final SegmentCommitInfo
-
Constructor Summary
ConstructorsConstructorDescriptionSegmentReader
(SegmentCommitInfo si, int createdVersionMajor, IOContext context) Constructs a new SegmentReader with a new core.SegmentReader
(SegmentCommitInfo si, SegmentReader sr, Bits liveDocs, Bits hardLiveDocs, int numDocs, boolean isNRT) Create new SegmentReader sharing core from a previous SegmentReader and using the provided liveDocs, and recording whether those liveDocs were carried in ram (isNRT=true). -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
assertLiveDocs
(boolean isNRT, Bits hardLiveDocs, Bits liveDocs) void
Checks consistency of this reader.Returns the directory this index resides in.protected void
doClose()
Implements close.final void
document
(int docID, StoredFieldVisitor visitor) Expert: visits the fields of a stored document, for custom processing/loading of each field.Optional method: Return aIndexReader.CacheHelper
that can be used to cache based on the content of this leaf regardless of deletions.Expert: retrieve underlying DocValuesProducerGet theFieldInfos
describing all fields in this reader.Expert: retrieve underlying StoredFieldsReaderReturns the live docs that are not hard-deleted.Returns theBits
representing live (not deleted) docs.Return metadata about this leaf.Expert: retrieve underlying NormsProducer(package private) SegmentCommitInfo
Returns the original SegmentInfo passed to the segment reader on creation time.Expert: retrieve underlying PointsReaderExpert: retrieve underlying FieldsProducerOptional method: Return aIndexReader.CacheHelper
that can be used to cache based on the content of this reader.Return the SegmentInfoPerCommit of the segment this reader is reading.Return the name of the segment this reader is reading.final Fields
getTermVectors
(int docID) Retrieve term vectors for this document, or null if term vectors were not indexed.Expert: retrieve underlying TermVectorsReaderprivate StoredFieldsReader
Deprecated.private TermVectorsReader
Deprecated.Expert: retrieve underlying VectorReaderprivate DocValuesProducer
init most recent DocValues for the current commitprivate FieldInfos
init most recent FieldInfos for the current commitint
maxDoc()
Returns one greater than the largest possible document number.protected void
For test framework use only.int
numDocs()
Returns the number of documents in this index.toString()
Methods inherited from class org.apache.lucene.index.CodecReader
getBinaryDocValues, getByteVectorValues, getFloatVectorValues, getNormValues, getNumericDocValues, getPointValues, getSortedDocValues, getSortedNumericDocValues, getSortedSetDocValues, searchNearestVectors, searchNearestVectors, storedFields, terms, termVectors
Methods inherited from class org.apache.lucene.index.LeafReader
docFreq, getContext, getDocCount, getSumDocFreq, getSumTotalTermFreq, postings, postings, searchNearestVectors, searchNearestVectors, totalTermFreq
Methods inherited from class org.apache.lucene.index.IndexReader
close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, registerParentReader, tryIncRef
-
Field Details
-
si
-
originalSi
-
metaData
-
liveDocs
-
hardLiveDocs
-
numDocs
private final int numDocs -
core
-
segDocValues
-
isNRT
final boolean isNRTTrue if we are holding RAM only liveDocs or DV updates, i.e. the SegmentCommitInfo delGen doesn't match our liveDocs. -
docValuesProducer
-
fieldInfos
-
readerClosedListeners
-
readerCacheHelper
-
coreCacheHelper
Wrap the cache helper of the core to add ensureOpen() calls that make sure users do not register closed listeners on closed indices.
-
-
Constructor Details
-
SegmentReader
SegmentReader(SegmentCommitInfo si, int createdVersionMajor, IOContext context) throws IOException Constructs a new SegmentReader with a new core.- Throws:
CorruptIndexException
- if the index is corruptIOException
- if there is a low-level IO error
-
SegmentReader
SegmentReader(SegmentCommitInfo si, SegmentReader sr, Bits liveDocs, Bits hardLiveDocs, int numDocs, boolean isNRT) throws IOException Create new SegmentReader sharing core from a previous SegmentReader and using the provided liveDocs, and recording whether those liveDocs were carried in ram (isNRT=true).- Throws:
IOException
-
-
Method Details
-
assertLiveDocs
-
initDocValuesProducer
init most recent DocValues for the current commit- Throws:
IOException
-
initFieldInfos
init most recent FieldInfos for the current commit- Throws:
IOException
-
getLiveDocs
Description copied from class:LeafReader
Returns theBits
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.
- Specified by:
getLiveDocs
in classLeafReader
-
doClose
Description copied from class:IndexReader
Implements close.- Overrides:
doClose
in classCodecReader
- Throws:
IOException
-
getFieldInfos
Description copied from class:LeafReader
Get theFieldInfos
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.
- Specified by:
getFieldInfos
in classLeafReader
-
numDocs
public int numDocs()Description copied from class:IndexReader
Returns the number of documents in this index.NOTE: This operation may run in O(maxDoc). Implementations that can't return this number in constant-time should cache it.
- Specified by:
numDocs
in classIndexReader
-
maxDoc
public int maxDoc()Description copied from class:IndexReader
Returns one greater than the largest possible document number. This may be used to, e.g., determine how big to allocate an array which will have an element for every document number in an index.- Specified by:
maxDoc
in classIndexReader
-
document
Description copied from class:IndexReader
Expert: visits the fields of a stored document, for custom processing/loading of each field. If you simply want to load all fields, useIndexReader.document(int)
. If you want to load a subset, useDocumentStoredFieldVisitor
.- Overrides:
document
in classCodecReader
- Throws:
IOException
-
getTermVectors
Description copied from class:IndexReader
Retrieve term vectors for this document, or null if term vectors were not indexed. The returned Fields instance acts like a single-document inverted index (the docID will be 0).- Overrides:
getTermVectors
in classCodecReader
- Throws:
IOException
-
getThreadLocalTermVectorsReader
Deprecated. -
getThreadLocalFieldsReader
Deprecated. -
getTermVectorsReader
Description copied from class:CodecReader
Expert: retrieve underlying TermVectorsReader- Specified by:
getTermVectorsReader
in classCodecReader
-
getFieldsReader
Description copied from class:CodecReader
Expert: retrieve underlying StoredFieldsReader- Specified by:
getFieldsReader
in classCodecReader
-
getPointsReader
Description copied from class:CodecReader
Expert: retrieve underlying PointsReader- Specified by:
getPointsReader
in classCodecReader
-
getNormsReader
Description copied from class:CodecReader
Expert: retrieve underlying NormsProducer- Specified by:
getNormsReader
in classCodecReader
-
getDocValuesReader
Description copied from class:CodecReader
Expert: retrieve underlying DocValuesProducer- Specified by:
getDocValuesReader
in classCodecReader
-
getVectorReader
Description copied from class:CodecReader
Expert: retrieve underlying VectorReader- Specified by:
getVectorReader
in classCodecReader
-
getPostingsReader
Description copied from class:CodecReader
Expert: retrieve underlying FieldsProducer- Specified by:
getPostingsReader
in classCodecReader
-
toString
-
getSegmentName
Return the name of the segment this reader is reading. -
getSegmentInfo
Return the SegmentInfoPerCommit of the segment this reader is reading. -
directory
Returns the directory this index resides in. -
notifyReaderClosedListeners
Description copied from class:IndexReader
For test framework use only.- Overrides:
notifyReaderClosedListeners
in classIndexReader
- Throws:
IOException
-
getReaderCacheHelper
Description copied from class:IndexReader
Optional method: Return aIndexReader.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.- Specified by:
getReaderCacheHelper
in classIndexReader
-
getCoreCacheHelper
Description copied from class:LeafReader
Optional method: Return aIndexReader.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 usingIndexReader.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.- Specified by:
getCoreCacheHelper
in classLeafReader
-
getMetaData
Description copied from class:LeafReader
Return metadata about this leaf.- Specified by:
getMetaData
in classLeafReader
-
getOriginalSegmentInfo
SegmentCommitInfo getOriginalSegmentInfo()Returns the original SegmentInfo passed to the segment reader on creation time.getSegmentInfo()
returns a clone of this instance. -
getHardLiveDocs
Returns the live docs that are not hard-deleted. This is an expert API to be used with soft-deletes to filter out document that hard deleted for instance due to aborted documents or to distinguish soft and hard deleted documents ie. a rolled back tombstone. -
checkIntegrity
Description copied from class:LeafReader
Checks consistency of this reader.Note that this may be costly in terms of I/O, e.g. may involve computing a checksum value against large data files.
- Overrides:
checkIntegrity
in classCodecReader
- Throws:
IOException
-