Class UniformSplitTermsReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<java.lang.String>
    Direct Known Subclasses:
    STUniformSplitTermsReader

    public class UniformSplitTermsReader
    extends FieldsProducer
    A block-based terms index and dictionary based on the Uniform Split technique.
    See Also:
    UniformSplitTermsWriter
    • Field Detail

      • version

        protected final int version
      • blockInput

        protected final IndexInput blockInput
      • dictionaryInput

        protected final IndexInput dictionaryInput
      • fieldToTermsMap

        protected final java.util.Map<java.lang.String,​UniformSplitTerms> fieldToTermsMap
      • sortedFieldNames

        protected final java.util.Collection<java.lang.String> sortedFieldNames
    • Constructor Detail

      • UniformSplitTermsReader

        public UniformSplitTermsReader​(PostingsReaderBase postingsReader,
                                       SegmentReadState state,
                                       BlockDecoder blockDecoder,
                                       boolean dictionaryOnHeap)
                                throws java.io.IOException
        Parameters:
        blockDecoder - Optional block decoder, may be null if none. It can be used for decompression or decryption.
        dictionaryOnHeap - Whether to force loading the terms dictionary on-heap. By default it is kept off-heap without impact on performance. If block encoding/decoding is used, then the dictionary is always loaded on-heap whatever this parameter value is.
        Throws:
        java.io.IOException
    • Method Detail

      • readUnencodedFieldsMetadata

        protected java.util.Collection<FieldMetadata> readUnencodedFieldsMetadata​(int numFields,
                                                                                  DataInput metadataInput,
                                                                                  FieldInfos fieldInfos,
                                                                                  FieldMetadata.Serializer fieldMetadataReader,
                                                                                  int maxNumDocs)
                                                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class FieldsProducer
        Throws:
        java.io.IOException
      • checkIntegrity

        public void checkIntegrity()
                            throws java.io.IOException
        Description copied from class: FieldsProducer
        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.

        Specified by:
        checkIntegrity in class FieldsProducer
        Throws:
        java.io.IOException
      • iterator

        public java.util.Iterator<java.lang.String> iterator()
        Description copied from class: Fields
        Returns an iterator that will step through all fields names. This will not return null.
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.String>
        Specified by:
        iterator in class Fields
      • terms

        public Terms terms​(java.lang.String field)
        Description copied from class: Fields
        Get the Terms for this field. This will return null if the field does not exist.
        Specified by:
        terms in class Fields
      • size

        public int size()
        Description copied from class: Fields
        Returns the number of fields or -1 if the number of distinct field names is unknown. If >= 0, Fields.iterator() will return as many field names.
        Specified by:
        size in class Fields
      • seekFieldsMetadata

        protected void seekFieldsMetadata​(IndexInput indexInput)
                                   throws java.io.IOException
        Positions the given IndexInput at the beginning of the fields metadata.
        Throws:
        java.io.IOException