Package org.apache.lucene.codecs.uniformsplit

## Interface IndexDictionary

- All Known Implementing Classes:
    `FSTDictionary`

      public interface IndexDictionary

  Immutable stateless index dictionary kept in RAM.

  Implementations must be immutable.

  Use `IndexDictionary.Builder` to build the `IndexDictionary`.

  Create a stateful `IndexDictionary.Browser` to seek a term in this `IndexDictionary` and get its corresponding block file pointer to the terms block file.

  There is a single implementation of this interface, `FSTDictionary`. However this interface allows you to plug easily a new kind of index dictionary to experiment and improve the existing one.

  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `IndexDictionary.Browser` | Stateful `IndexDictionary.Browser` to seek a term in this `IndexDictionary` and get its corresponding block file pointer in the block file.
    `static interface` | `IndexDictionary.BrowserSupplier` | Supplier for a new stateful `IndexDictionary.Browser` created on the immutable `IndexDictionary`.
    `static interface` | `IndexDictionary.Builder` | Builds an immutable `IndexDictionary`.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `IndexDictionary.Browser` | `browser()` | Creates a new `IndexDictionary.Browser`.
    `void` | `write​(DataOutput output, BlockEncoder blockEncoder)` | Writes this dictionary to the provided output.

- - ### Method Detail

    - #### write

          void write​(DataOutput output,
                     BlockEncoder blockEncoder)
              throws IOException

      Writes this dictionary to the provided output.
      Parameters:
        `blockEncoder` - The `BlockEncoder` for specific encoding of this index dictionary; or null if none.
      Throws:
        `IOException`

    - #### browser

          IndexDictionary.Browser browser()
                                   throws IOException

      Creates a new `IndexDictionary.Browser`.
      Throws:
        `IOException`