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

  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 Details

  - ### 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 Details

  - ### 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 Details

  - ### 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`