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

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 Details

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