Package org.apache.lucene.codecs.uniformsplit

## Class FSTDictionary.Builder

- java.lang.Object
- - org.apache.lucene.codecs.uniformsplit.FSTDictionary.Builder

- All Implemented Interfaces:
    `IndexDictionary.Builder`
  Enclosing class:
    FSTDictionary

      public static class FSTDictionary.Builder
      extends Object
      implements IndexDictionary.Builder

  Builds an immutable `FSTDictionary`.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected FSTCompiler<Long>` | `fstCompiler` |
    `protected IntsRefBuilder` | `scratchInts` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Builder()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(BytesRef blockKey, long blockFilePointer)` | Adds a [block key - block file pointer] entry to the dictionary.
    `FSTDictionary` | `build()` | Builds the immutable `IndexDictionary` for the added entries.

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

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

- - ### Field Detail

    - #### fstCompiler

          protected final FSTCompiler<Long> fstCompiler

    - #### scratchInts

          protected final IntsRefBuilder scratchInts

  - ### Constructor Detail

    - #### Builder

          public Builder()
                  throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### add

          public void add​(BytesRef blockKey,
                          long blockFilePointer)
                   throws IOException

      Description copied from interface: `IndexDictionary.Builder`
      Adds a [block key - block file pointer] entry to the dictionary.

      The Uniform Split technique adds block keys in the dictionary. See `BlockReader` and `TermBytes` for more info about block key and minimal distinguishing prefix (MDP).

      All block keys are added in strictly increasing order of the block file pointers, this allows long encoding optimizations such as with `PositiveIntOutputs` for `FST`.

      Specified by:
        `add` in interface `IndexDictionary.Builder`
      Parameters:
        `blockKey` - The block key which is the minimal distinguishing prefix (MDP) of the first term of a block.
        `blockFilePointer` - Non-negative file pointer to the start of the block in the block file.
      Throws:
        `IOException`

    - #### build

          public FSTDictionary build()
                              throws IOException

      Description copied from interface: `IndexDictionary.Builder`
      Builds the immutable `IndexDictionary` for the added entries.
      Specified by:
        `build` in interface `IndexDictionary.Builder`
      Throws:
        `IOException`