Package org.apache.lucene.codecs.uniformsplit

## Class UniformSplitTermsReader

- java.lang.Object
- - org.apache.lucene.index.Fields
  - - org.apache.lucene.codecs.FieldsProducer
    - - org.apache.lucene.codecs.uniformsplit.UniformSplitTermsReader

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`, `Iterable<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`
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected IndexInput` | `blockInput` |
    `protected IndexInput` | `dictionaryInput` |
    `protected Map<String,​UniformSplitTerms>` | `fieldToTermsMap` |
    `protected PostingsReaderBase` | `postingsReader` |
    `protected Collection<String>` | `sortedFieldNames` |
    `protected int` | `version` |

    - ### Fields inherited from class org.apache.lucene.index.Fields

      `EMPTY_ARRAY`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `UniformSplitTermsReader​(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder, boolean dictionaryOnHeap)` |
    `protected` | `UniformSplitTermsReader​(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder, boolean dictionaryOnHeap, FieldMetadata.Serializer fieldMetadataReader, String codecName, int versionStart, int versionCurrent, String termsBlocksExtension, String dictionaryExtension)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `checkIntegrity()` |
    `void` | `close()` |
    `protected IndexDictionary.BrowserSupplier` | `createDictionaryBrowserSupplier​(SegmentReadState state, IndexInput dictionaryInput, FieldMetadata fieldMetadata, BlockDecoder blockDecoder, boolean dictionaryOnHeap)` |
    `protected void` | `fillFieldMap​(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder, boolean dictionaryOnHeap, IndexInput dictionaryInput, IndexInput blockInput, Collection<FieldMetadata> fieldMetadataCollection, FieldInfos fieldInfos)` |
    `Iterator<String>` | `iterator()` |
    `protected Collection<FieldMetadata>` | `readEncodedFieldsMetadata​(int numFields, DataInput metadataInput, BlockDecoder blockDecoder, FieldInfos fieldInfos, FieldMetadata.Serializer fieldMetadataReader, int maxNumDocs)` |
    `protected Collection<FieldMetadata>` | `readFieldsMetadata​(IndexInput indexInput, BlockDecoder blockDecoder, FieldInfos fieldInfos, FieldMetadata.Serializer fieldMetadataReader, int maxNumDocs)` |
    `protected Collection<FieldMetadata>` | `readUnencodedFieldsMetadata​(int numFields, DataInput metadataInput, FieldInfos fieldInfos, FieldMetadata.Serializer fieldMetadataReader, int maxNumDocs)` |
    `protected void` | `seekFieldsMetadata​(IndexInput indexInput)` | Positions the given `IndexInput` at the beginning of the fields metadata.
    `int` | `size()` |
    `Terms` | `terms​(String field)` |

    - ### Methods inherited from class org.apache.lucene.codecs.FieldsProducer

      `getMergeInstance`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### postingsReader

          protected final PostingsReaderBase postingsReader

    - #### version

          protected final int version

    - #### blockInput

          protected final IndexInput blockInput

    - #### dictionaryInput

          protected final IndexInput dictionaryInput

    - #### fieldToTermsMap

          protected final Map<String,​UniformSplitTerms> fieldToTermsMap

    - #### sortedFieldNames

          protected final Collection<String> sortedFieldNames

  - ### Constructor Detail

    - #### UniformSplitTermsReader

          public UniformSplitTermsReader​(PostingsReaderBase postingsReader,
                                         SegmentReadState state,
                                         BlockDecoder blockDecoder,
                                         boolean dictionaryOnHeap)
                                  throws 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:
        `IOException`

    - #### UniformSplitTermsReader

          protected UniformSplitTermsReader​(PostingsReaderBase postingsReader,
                                            SegmentReadState state,
                                            BlockDecoder blockDecoder,
                                            boolean dictionaryOnHeap,
                                            FieldMetadata.Serializer fieldMetadataReader,
                                            String codecName,
                                            int versionStart,
                                            int versionCurrent,
                                            String termsBlocksExtension,
                                            String dictionaryExtension)
                                     throws IOException

      Throws:
        `IOException`
      See Also:
        `UniformSplitTermsReader(PostingsReaderBase, SegmentReadState, BlockDecoder, boolean)`

  - ### Method Detail

    - #### fillFieldMap

          protected void fillFieldMap​(PostingsReaderBase postingsReader,
                                      SegmentReadState state,
                                      BlockDecoder blockDecoder,
                                      boolean dictionaryOnHeap,
                                      IndexInput dictionaryInput,
                                      IndexInput blockInput,
                                      Collection<FieldMetadata> fieldMetadataCollection,
                                      FieldInfos fieldInfos)
                               throws IOException

      Throws:
        `IOException`

    - #### createDictionaryBrowserSupplier

          protected IndexDictionary.BrowserSupplier createDictionaryBrowserSupplier​(SegmentReadState state,
                                                                                    IndexInput dictionaryInput,
                                                                                    FieldMetadata fieldMetadata,
                                                                                    BlockDecoder blockDecoder,
                                                                                    boolean dictionaryOnHeap)
                                                                             throws IOException

      Throws:
        `IOException`

    - #### readFieldsMetadata

          protected Collection<FieldMetadata> readFieldsMetadata​(IndexInput indexInput,
                                                                 BlockDecoder blockDecoder,
                                                                 FieldInfos fieldInfos,
                                                                 FieldMetadata.Serializer fieldMetadataReader,
                                                                 int maxNumDocs)
                                                          throws IOException

      Parameters:
        `indexInput` - `IndexInput` must be positioned to the fields metadata details by calling `seekFieldsMetadata(IndexInput)` before this call.
        `blockDecoder` - Optional block decoder, may be null if none.
      Throws:
        `IOException`

    - #### readEncodedFieldsMetadata

          protected Collection<FieldMetadata> readEncodedFieldsMetadata​(int numFields,
                                                                        DataInput metadataInput,
                                                                        BlockDecoder blockDecoder,
                                                                        FieldInfos fieldInfos,
                                                                        FieldMetadata.Serializer fieldMetadataReader,
                                                                        int maxNumDocs)
                                                                 throws IOException

      Throws:
        `IOException`

    - #### readUnencodedFieldsMetadata

          protected Collection<FieldMetadata> readUnencodedFieldsMetadata​(int numFields,
                                                                          DataInput metadataInput,
                                                                          FieldInfos fieldInfos,
                                                                          FieldMetadata.Serializer fieldMetadataReader,
                                                                          int maxNumDocs)
                                                                   throws IOException

      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in class `FieldsProducer`
      Throws:
        `IOException`

    - #### checkIntegrity

          public void checkIntegrity()
                              throws IOException

      Specified by:
        `checkIntegrity` in class `FieldsProducer`
      Throws:
        `IOException`

    - #### iterator

          public Iterator<String> iterator()

      Specified by:
        `iterator` in interface `Iterable<String>`
      Specified by:
        `iterator` in class `Fields`

    - #### terms

          public Terms terms​(String field)

      Specified by:
        `terms` in class `Fields`

    - #### size

          public int size()

      Specified by:
        `size` in class `Fields`

    - #### seekFieldsMetadata

          protected void seekFieldsMetadata​(IndexInput indexInput)
                                     throws IOException

      Positions the given `IndexInput` at the beginning of the fields metadata.
      Throws:
        `IOException`