# Package org.apache.lucene.codecs.uniformsplit

package org.apache.lucene.codecs.uniformsplit
Pluggable term index / block terms dictionary implementations.

Structure similar to `VariableGapTermsIndexWriter` with additional optimizations.

- Designed to be extensible
- Reduced on-heap memory usage.
- Efficient to seek terms (`TermQuery`, `PhraseQuery`)
- Quite efficient for `PrefixQuery`
- Not efficient for spell-check and `FuzzyQuery`, in this case prefer `Lucene912PostingsFormat`

Related Packages
Package
Description
org.apache.lucene.codecs.uniformsplit.sharedterms
Pluggable term index / block terms dictionary implementations.
Class
Description
BlockDecoder
Decodes the raw bytes of a block when the index is read, according to the `BlockEncoder` used during the writing of the index.
BlockEncoder
Encodes the raw bytes of a block when the index is written.
BlockEncoder.WritableBytes
Writable byte buffer.
BlockHeader
Block header containing block metadata.
BlockHeader.Serializer
Reads/writes block header.
BlockLine
One term block line.
BlockLine.Serializer
Reads/writes block lines with terms encoded incrementally inside a block.
BlockReader
Seeks the block corresponding to a given term, read the block bytes, and scans the block terms.
BlockWriter
Writes blocks in the block file.
DeltaBaseTermStateSerializer
`TermState` serializer which encodes each file pointer as a delta relative to a base file pointer.
FieldMetadata
Metadata and stats for one field in the index.
FieldMetadata.Serializer
Reads/writes field metadata.
FSTDictionary
Immutable stateless `FST`-based index dictionary kept in memory.
FSTDictionary.BrowserSupplier
Provides stateful `FSTDictionary.Browser` to seek in the `FSTDictionary`.
FSTDictionary.Builder
Builds an immutable `FSTDictionary`.
IndexDictionary
Immutable stateless index dictionary kept in RAM.
IndexDictionary.Browser
Stateful `IndexDictionary.Browser` to seek a term in this `IndexDictionary` and get its corresponding block file pointer in the block file.
IndexDictionary.BrowserSupplier
Supplier for a new stateful `IndexDictionary.Browser` created on the immutable `IndexDictionary`.
IndexDictionary.Builder
Builds an immutable `IndexDictionary`.
IntersectBlockReader
The "intersect" `TermsEnum` response to `UniformSplitTerms.intersect(CompiledAutomaton, BytesRef)`, intersecting the terms with an automaton.
IntersectBlockReader.BlockIteration
Block iteration order.
RamUsageUtil
Utility methods to estimate the RAM usage of objects.
TermBytes
Term of a block line.
UniformSplitPostingsFormat
`PostingsFormat` based on the Uniform Split technique.
UniformSplitTerms
`Terms` based on the Uniform Split technique.
UniformSplitTermsReader
A block-based terms index and dictionary based on the Uniform Split technique.
UniformSplitTermsWriter
A block-based terms index and dictionary that assigns terms to nearly uniform length blocks.