# Package org.apache.lucene.codecs.uniformsplit.sharedterms

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

Extension of `org.apache.lucene.codecs.uniformsplit` with Shared Terms principle: Terms are shared between all fields. It is particularly adapted to index a massive number of fields because all the terms are stored in a single FST dictionary.

- Designed to be extensible
- Highly reduced on-heap memory usage when dealing with a massive number of fields.

- Related Packages
  Package
  Description
  org.apache.lucene.codecs.uniformsplit
  Pluggable term index / block terms dictionary implementations.
- Class
  Description
  FieldMetadataTermState
  Pair of `FieldMetadata` and `BlockTermState` for a specific field.
  STBlockLine
  Represents a term and its details stored in the `BlockTermState`.
  STBlockLine.Serializer
  Reads block lines encoded incrementally, with all fields corresponding to the term of the line.
  STBlockReader
  Reads terms blocks with the Shared Terms format.
  STBlockWriter
  Writes terms blocks with the Shared Terms format.
  STIntersectBlockReader
  The "intersect" `TermsEnum` response to `STUniformSplitTerms.intersect(CompiledAutomaton, BytesRef)`, intersecting the terms with an automaton.
  STMergingBlockReader
  `TermsEnum` used when merging segments, to enumerate the terms of an input segment and get all the fields `TermState`s of each term.
  STUniformSplitPostingsFormat
  `PostingsFormat` based on the Uniform Split technique and supporting Shared Terms.
  STUniformSplitTerms
  Extends `UniformSplitTerms` for a shared-terms dictionary, with all the fields of a term in the same block line.
  STUniformSplitTermsReader
  A block-based terms index and dictionary based on the Uniform Split technique, and sharing all the fields terms in the same dictionary, with all the fields of a term in the same block line.
  STUniformSplitTermsWriter
  Extends `UniformSplitTermsWriter` by sharing all the fields terms in the same dictionary and by writing all the fields of a term in the same block line.
  UnionFieldMetadataBuilder
  Builds a `FieldMetadata` that is the union of multiple `FieldMetadata`.