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 Classes
    Modifier and Type
    Class
    Description
    static class 
    Return information about the backing cache
    static enum 
    Specifies 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.FilterTermsEnum

    Nested 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 Type
    Method
    Description
    org.apache.lucene.index.BinaryDocValues
     
    org.apache.lucene.index.IndexReader.CacheHelper
     
    org.apache.lucene.index.FieldInfos
     
    org.apache.lucene.index.NumericDocValues
     
    org.apache.lucene.index.IndexReader.CacheHelper
     
    org.apache.lucene.index.SortedDocValues
     
    org.apache.lucene.index.SortedSetDocValues
     
    Return information about the backing cache
    static int
     
     
    static org.apache.lucene.index.DirectoryReader
    wrap(org.apache.lucene.index.DirectoryReader in, Function<String,UninvertingReader.Type> mapper)
    Wraps a provided DirectoryReader.
    static org.apache.lucene.index.DirectoryReader
    wrap(org.apache.lucene.index.DirectoryReader reader, Map<String,UninvertingReader.Type> mapping)
     
    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.

    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, unwrap

    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, ensureOpen, equals, getRefCount, hasDeletions, hashCode, incRef, leaves, notifyReaderClosedListeners, numDeletedDocs, registerParentReader, tryIncRef

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 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 IOException
      Wraps a provided DirectoryReader. Note that for convenience, the returned reader can be used normally (e.g. passed to DirectoryReader.openIfChanged(DirectoryReader)) and so on.
      Parameters:
      in - input directory reader
      mapper - 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:
      getFieldInfos in class org.apache.lucene.index.FilterLeafReader
    • getNumericDocValues

      public org.apache.lucene.index.NumericDocValues getNumericDocValues(String field) throws IOException
      Overrides:
      getNumericDocValues in class org.apache.lucene.index.FilterLeafReader
      Throws:
      IOException
    • getBinaryDocValues

      public org.apache.lucene.index.BinaryDocValues getBinaryDocValues(String field) throws IOException
      Overrides:
      getBinaryDocValues in class org.apache.lucene.index.FilterLeafReader
      Throws:
      IOException
    • getSortedDocValues

      public org.apache.lucene.index.SortedDocValues getSortedDocValues(String field) throws IOException
      Overrides:
      getSortedDocValues in class org.apache.lucene.index.FilterLeafReader
      Throws:
      IOException
    • getSortedSetDocValues

      public org.apache.lucene.index.SortedSetDocValues getSortedSetDocValues(String field) throws IOException
      Overrides:
      getSortedSetDocValues in class org.apache.lucene.index.FilterLeafReader
      Throws:
      IOException
    • getCoreCacheHelper

      public org.apache.lucene.index.IndexReader.CacheHelper getCoreCacheHelper()
      Specified by:
      getCoreCacheHelper in class org.apache.lucene.index.LeafReader
    • getReaderCacheHelper

      public org.apache.lucene.index.IndexReader.CacheHelper getReaderCacheHelper()
      Specified by:
      getReaderCacheHelper in class org.apache.lucene.index.IndexReader
    • toString

      public String toString()
      Overrides:
      toString in class org.apache.lucene.index.FilterLeafReader
    • getUninvertedStats

      public static UninvertingReader.FieldCacheStats 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()