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