Package org.apache.lucene.index
Class SortingCodecReader
java.lang.Object
org.apache.lucene.index.IndexReader
org.apache.lucene.index.LeafReader
org.apache.lucene.index.CodecReader
org.apache.lucene.index.FilterCodecReader
org.apache.lucene.index.SortingCodecReader
- All Implemented Interfaces:
Closeable,AutoCloseable
An
CodecReader which supports sorting documents by a given Sort. This can be used to re-sort and index after it's been created by wrapping all readers of
the index with this reader and adding it to a fresh IndexWriter via IndexWriter.addIndexes(CodecReader...). NOTE: This reader should only be used for merging.
Pulling fields from this reader might be very costly and memory intensive.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classIterator over KnnVectorValues accepting a mapping to differently-sorted docs.Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader
IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener -
Field Summary
Fields inherited from class org.apache.lucene.index.FilterCodecReader
in -
Method Summary
Modifier and TypeMethodDescriptionOptional method: Return aIndexReader.CacheHelperthat can be used to cache based on the content of this leaf regardless of deletions.Expert: retrieve underlying DocValuesProducerExpert: retrieve underlying StoredFieldsReaderReturns theBitsrepresenting live (not deleted) docs.Return metadata about this leaf.Expert: retrieve underlying NormsProducerExpert: retrieve underlying PointsReaderExpert: retrieve underlying FieldsProducerOptional method: Return aIndexReader.CacheHelperthat can be used to cache based on the content of this reader.Expert: retrieve underlying TermVectorsReaderExpert: retrieve underlying VectorReaderstatic org.apache.lucene.index.SortingCodecReader.SortingIteratorSupplieriteratorSupplier(KnnVectorValues values, Sorter.DocMap docMap) Creates a factory for SortingValuesIterator.toString()static CodecReaderwrap(CodecReader reader, Sorter.DocMap docMap, Sort sort) Expert: same aswrap(org.apache.lucene.index.CodecReader, Sort)but operates directly on aSorter.DocMap.static CodecReaderwrap(CodecReader reader, Sort sort) Return a sorted view ofreaderaccording to the order defined bysort.Methods inherited from class org.apache.lucene.index.FilterCodecReader
checkIntegrity, doClose, getDelegate, getFieldInfos, maxDoc, numDocs, unwrapMethods inherited from class org.apache.lucene.index.CodecReader
getBinaryDocValues, getByteVectorValues, getDocValuesSkipper, getFloatVectorValues, getNormValues, getNumericDocValues, getPointValues, getSortedDocValues, getSortedNumericDocValues, getSortedSetDocValues, searchNearestVectors, searchNearestVectors, storedFields, terms, termVectorsMethods inherited from class org.apache.lucene.index.LeafReader
docFreq, getContext, getDocCount, getSumDocFreq, getSumTotalTermFreq, postings, postings, searchNearestVectors, searchNearestVectors, totalTermFreqMethods inherited from class org.apache.lucene.index.IndexReader
close, decRef, ensureOpen, equals, getRefCount, hasDeletions, hashCode, incRef, leaves, notifyReaderClosedListeners, numDeletedDocs, registerParentReader, tryIncRef
-
Method Details
-
iteratorSupplier
public static org.apache.lucene.index.SortingCodecReader.SortingIteratorSupplier iteratorSupplier(KnnVectorValues values, Sorter.DocMap docMap) throws IOException Creates a factory for SortingValuesIterator. Does the work of computing the (new docId to old ordinal) mapping, and caches the result, enabling it to create new iterators cheaply.- Parameters:
values- the values over which to iteratedocMap- the mapping from "old" docIds to "new" (sorted) docIds.- Throws:
IOException
-
wrap
Return a sorted view ofreaderaccording to the order defined bysort. If the reader is already sorted, this method might return the reader as-is.- Throws:
IOException
-
wrap
Expert: same aswrap(org.apache.lucene.index.CodecReader, Sort)but operates directly on aSorter.DocMap. -
getPostingsReader
Description copied from class:CodecReaderExpert: retrieve underlying FieldsProducer- Overrides:
getPostingsReaderin classFilterCodecReader
-
getFieldsReader
Description copied from class:CodecReaderExpert: retrieve underlying StoredFieldsReader- Overrides:
getFieldsReaderin classFilterCodecReader
-
getLiveDocs
Description copied from class:LeafReaderReturns theBitsrepresenting 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.
- Overrides:
getLiveDocsin classFilterCodecReader
-
getPointsReader
Description copied from class:CodecReaderExpert: retrieve underlying PointsReader- Overrides:
getPointsReaderin classFilterCodecReader
-
getVectorReader
Description copied from class:CodecReaderExpert: retrieve underlying VectorReader- Overrides:
getVectorReaderin classFilterCodecReader
-
getNormsReader
Description copied from class:CodecReaderExpert: retrieve underlying NormsProducer- Overrides:
getNormsReaderin classFilterCodecReader
-
getDocValuesReader
Description copied from class:CodecReaderExpert: retrieve underlying DocValuesProducer- Overrides:
getDocValuesReaderin classFilterCodecReader
-
getTermVectorsReader
Description copied from class:CodecReaderExpert: retrieve underlying TermVectorsReader- Overrides:
getTermVectorsReaderin classFilterCodecReader
-
toString
-
getCoreCacheHelper
Description copied from class:LeafReaderOptional method: Return aIndexReader.CacheHelperthat 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
nullindicates 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:
getCoreCacheHelperin classLeafReader
-
getReaderCacheHelper
Description copied from class:IndexReaderOptional method: Return aIndexReader.CacheHelperthat 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
nullindicates 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:
getReaderCacheHelperin classIndexReader
-
getMetaData
Description copied from class:LeafReaderReturn metadata about this leaf.- Overrides:
getMetaDatain classFilterCodecReader
-