Package org.apache.lucene.codecs.uniformsplit

## Class UniformSplitPostingsFormat

- java.lang.Object
- - org.apache.lucene.codecs.PostingsFormat
  - - org.apache.lucene.codecs.uniformsplit.UniformSplitPostingsFormat

- All Implemented Interfaces:
    `NamedSPILoader.NamedSPI`
  Direct Known Subclasses:
    `STUniformSplitPostingsFormat`

      public class UniformSplitPostingsFormat
      extends PostingsFormat

  `PostingsFormat` 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 BlockDecoder` | `blockDecoder` |
    `protected BlockEncoder` | `blockEncoder` |
    `protected int` | `deltaNumLines` |
    `protected boolean` | `dictionaryOnHeap` |
    `static String` | `NAME` |
    `protected int` | `targetNumBlockLines` |
    `static String` | `TERMS_BLOCKS_EXTENSION` | Extension of the file containing the terms blocks for each field and the fields metadata.
    `static String` | `TERMS_DICTIONARY_EXTENSION` | Extension of the file containing the terms dictionary (the FST "trie").
    `static int` | `VERSION_CURRENT` |
    `static int` | `VERSION_ENCODABLE_FIELDS_METADATA` |
    `static int` | `VERSION_START` |

    - ### Fields inherited from class org.apache.lucene.codecs.PostingsFormat

      `EMPTY`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `UniformSplitPostingsFormat()` | Creates a `UniformSplitPostingsFormat` with default settings.
    `` | `UniformSplitPostingsFormat​(int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder, boolean dictionaryOnHeap)` |
    `protected` | `UniformSplitPostingsFormat​(String name, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder, boolean dictionaryOnHeap)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected FieldsProducer` | `createUniformSplitTermsReader​(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder)` |
    `protected FieldsConsumer` | `createUniformSplitTermsWriter​(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder)` |
    `FieldsConsumer` | `fieldsConsumer​(SegmentWriteState state)` |
    `FieldsProducer` | `fieldsProducer​(SegmentReadState state)` |

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

      `availablePostingsFormats, forName, getName, reloadPostingsFormats, toString`

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

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

- - ### Field Detail

    - #### TERMS_DICTIONARY_EXTENSION

          public static final String TERMS_DICTIONARY_EXTENSION

      Extension of the file containing the terms dictionary (the FST "trie").
      See Also:
        Constant Field Values

    - #### TERMS_BLOCKS_EXTENSION

          public static final String TERMS_BLOCKS_EXTENSION

      Extension of the file containing the terms blocks for each field and the fields metadata.
      See Also:
        Constant Field Values

    - #### VERSION_START

          public static final int VERSION_START

      See Also:
        Constant Field Values

    - #### VERSION_ENCODABLE_FIELDS_METADATA

          public static final int VERSION_ENCODABLE_FIELDS_METADATA

      See Also:
        Constant Field Values

    - #### VERSION_CURRENT

          public static final int VERSION_CURRENT

      See Also:
        Constant Field Values

    - #### NAME

          public static final String NAME

      See Also:
        Constant Field Values

    - #### targetNumBlockLines

          protected final int targetNumBlockLines

    - #### deltaNumLines

          protected final int deltaNumLines

    - #### blockEncoder

          protected final BlockEncoder blockEncoder

    - #### blockDecoder

          protected final BlockDecoder blockDecoder

    - #### dictionaryOnHeap

          protected final boolean dictionaryOnHeap

  - ### Constructor Detail

    - #### UniformSplitPostingsFormat

          public UniformSplitPostingsFormat()

      Creates a `UniformSplitPostingsFormat` with default settings.

    - #### UniformSplitPostingsFormat

          public UniformSplitPostingsFormat​(int targetNumBlockLines,
                                            int deltaNumLines,
                                            BlockEncoder blockEncoder,
                                            BlockDecoder blockDecoder,
                                            boolean dictionaryOnHeap)

      Parameters:
        `targetNumBlockLines` - Target number of lines per block. Must be strictly greater than 0. The parameters can be pre-validated with `UniformSplitTermsWriter.validateSettings(int, int)`. There is one term per block line, with its corresponding details (`TermState`).
        `deltaNumLines` - Maximum allowed delta variation of the number of lines per block. Must be greater than or equal to 0 and strictly less than `targetNumBlockLines`. The block size will be `targetNumBlockLines`+-`deltaNumLines`. The block size must always be less than or equal to `UniformSplitTermsWriter.MAX_NUM_BLOCK_LINES`.
        `blockEncoder` - Optional block encoder, may be null if none. If present, it is used to encode all terms blocks, as well as the FST dictionary and the fields metadata.
        `blockDecoder` - Optional block decoder, may be null if none. If present, it is used to decode all terms blocks, as well as the FST dictionary and the fields metadata.
        `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.

    - #### UniformSplitPostingsFormat

          protected UniformSplitPostingsFormat​(String name,
                                               int targetNumBlockLines,
                                               int deltaNumLines,
                                               BlockEncoder blockEncoder,
                                               BlockDecoder blockDecoder,
                                               boolean dictionaryOnHeap)

      See Also:
        `UniformSplitPostingsFormat(int, int, BlockEncoder, BlockDecoder, boolean)`

  - ### Method Detail

    - #### fieldsConsumer

          public FieldsConsumer fieldsConsumer​(SegmentWriteState state)
                                        throws IOException

      Specified by:
        `fieldsConsumer` in class `PostingsFormat`
      Throws:
        `IOException`

    - #### fieldsProducer

          public FieldsProducer fieldsProducer​(SegmentReadState state)
                                        throws IOException

      Specified by:
        `fieldsProducer` in class `PostingsFormat`
      Throws:
        `IOException`

    - #### createUniformSplitTermsWriter

          protected FieldsConsumer createUniformSplitTermsWriter​(PostingsWriterBase postingsWriter,
                                                                 SegmentWriteState state,
                                                                 int targetNumBlockLines,
                                                                 int deltaNumLines,
                                                                 BlockEncoder blockEncoder)
                                                          throws IOException

      Throws:
        `IOException`

    - #### createUniformSplitTermsReader

          protected FieldsProducer createUniformSplitTermsReader​(PostingsReaderBase postingsReader,
                                                                 SegmentReadState state,
                                                                 BlockDecoder blockDecoder)
                                                          throws IOException

      Throws:
        `IOException`