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`