Package org.apache.solr.uninverting
Class UninvertingReader
java.lang.Object
org.apache.lucene.index.IndexReader
org.apache.lucene.index.LeafReader
org.apache.lucene.index.FilterLeafReader
org.apache.solr.uninverting.UninvertingReader
- All Implemented Interfaces:
Closeable,AutoCloseable
public class UninvertingReader
extends org.apache.lucene.index.FilterLeafReader
A FilterReader that exposes indexed values as if they also had docvalues.
This is accomplished by "inverting the inverted index" or "uninversion".
The uninversion process happens lazily: upon the first request for the field's docvalues (e.g.
via LeafReader.getNumericDocValues(String) or similar), it will
create the docvalues on-the-fly if needed and cache it, based on the core cache key of the
wrapped LeafReader.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classReturn information about the backing cachestatic enumSpecifies the type of uninversion to apply for the field.Nested classes/interfaces inherited from class org.apache.lucene.index.FilterLeafReader
org.apache.lucene.index.FilterLeafReader.FilterFields, org.apache.lucene.index.FilterLeafReader.FilterPostingsEnum, org.apache.lucene.index.FilterLeafReader.FilterTerms, org.apache.lucene.index.FilterLeafReader.FilterTermsEnumNested classes/interfaces inherited from class org.apache.lucene.index.IndexReader
org.apache.lucene.index.IndexReader.CacheHelper, org.apache.lucene.index.IndexReader.CacheKey, org.apache.lucene.index.IndexReader.ClosedListener -
Field Summary
Fields inherited from class org.apache.lucene.index.FilterLeafReader
in -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.lucene.index.BinaryDocValuesgetBinaryDocValues(String field) org.apache.lucene.index.IndexReader.CacheHelperorg.apache.lucene.index.FieldInfosorg.apache.lucene.index.NumericDocValuesgetNumericDocValues(String field) org.apache.lucene.index.IndexReader.CacheHelperorg.apache.lucene.index.SortedDocValuesgetSortedDocValues(String field) org.apache.lucene.index.SortedSetDocValuesgetSortedSetDocValues(String field) Return information about the backing cachestatic inttoString()static org.apache.lucene.index.DirectoryReaderwrap(org.apache.lucene.index.DirectoryReader in, Function<String, UninvertingReader.Type> mapper) Wraps a providedDirectoryReader.static org.apache.lucene.index.DirectoryReaderwrap(org.apache.lucene.index.DirectoryReader reader, Map<String, UninvertingReader.Type> mapping) static org.apache.lucene.index.LeafReaderwrap(org.apache.lucene.index.LeafReader in, Function<String, UninvertingReader.Type> mapping) Create a new UninvertingReader with the specified mapping, wrapped around the input.Methods inherited from class org.apache.lucene.index.FilterLeafReader
checkIntegrity, doClose, getByteVectorValues, getDelegate, getDocValuesSkipper, getFloatVectorValues, getLiveDocs, getMetaData, getNormValues, getPointValues, getSortedNumericDocValues, maxDoc, numDocs, searchNearestVectors, searchNearestVectors, storedFields, terms, termVectors, unwrapMethods 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
-
wrap
public static org.apache.lucene.index.DirectoryReader wrap(org.apache.lucene.index.DirectoryReader reader, Map<String, UninvertingReader.Type> mapping) throws IOException- Throws:
IOException- See Also:
-
wrap
public static org.apache.lucene.index.DirectoryReader wrap(org.apache.lucene.index.DirectoryReader in, Function<String, UninvertingReader.Type> mapper) throws IOExceptionWraps a providedDirectoryReader. Note that for convenience, the returned reader can be used normally (e.g. passed toDirectoryReader.openIfChanged(DirectoryReader)) and so on.- Parameters:
in- input directory readermapper- function to map a field name to an uninversion type. A Null result means to not uninvert.- Returns:
- a wrapped directory reader
- Throws:
IOException
-
wrap
public static org.apache.lucene.index.LeafReader wrap(org.apache.lucene.index.LeafReader in, Function<String, UninvertingReader.Type> mapping) Create a new UninvertingReader with the specified mapping, wrapped around the input. It may be deemed that there is no mapping to do, in which case the input is returned.Expert: This should almost never be used. Use
wrap(DirectoryReader, Function)instead.- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
getFieldInfos
public org.apache.lucene.index.FieldInfos getFieldInfos()- Overrides:
getFieldInfosin classorg.apache.lucene.index.FilterLeafReader
-
getNumericDocValues
public org.apache.lucene.index.NumericDocValues getNumericDocValues(String field) throws IOException - Overrides:
getNumericDocValuesin classorg.apache.lucene.index.FilterLeafReader- Throws:
IOException
-
getBinaryDocValues
- Overrides:
getBinaryDocValuesin classorg.apache.lucene.index.FilterLeafReader- Throws:
IOException
-
getSortedDocValues
- Overrides:
getSortedDocValuesin classorg.apache.lucene.index.FilterLeafReader- Throws:
IOException
-
getSortedSetDocValues
public org.apache.lucene.index.SortedSetDocValues getSortedSetDocValues(String field) throws IOException - Overrides:
getSortedSetDocValuesin classorg.apache.lucene.index.FilterLeafReader- Throws:
IOException
-
getCoreCacheHelper
public org.apache.lucene.index.IndexReader.CacheHelper getCoreCacheHelper()- Specified by:
getCoreCacheHelperin classorg.apache.lucene.index.LeafReader
-
getReaderCacheHelper
public org.apache.lucene.index.IndexReader.CacheHelper getReaderCacheHelper()- Specified by:
getReaderCacheHelperin classorg.apache.lucene.index.IndexReader
-
toString
- Overrides:
toStringin classorg.apache.lucene.index.FilterLeafReader
-
getUninvertedStats
Return information about the backing cache- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
getUninvertedStatsSize
public static int getUninvertedStatsSize()
-