Class Lucene90BlockTreeTermsReader

java.lang.Object
org.apache.lucene.index.Fields
org.apache.lucene.codecs.FieldsProducer
org.apache.lucene.codecs.lucene90.blocktree.Lucene90BlockTreeTermsReader
All Implemented Interfaces:
Closeable, AutoCloseable, Iterable<String>

public final class Lucene90BlockTreeTermsReader extends FieldsProducer
A block-based terms index and dictionary that assigns terms to variable length blocks according to how they share prefixes. The terms index is a prefix trie whose leaves are term blocks. The advantage of this approach is that seekExact is often able to determine a term cannot exist without doing any IO, and intersection with Automata is very fast. Note that this terms dictionary has its own fixed terms index (ie, it does not support a pluggable terms index implementation).

NOTE: this terms dictionary supports min/maxItemsPerBlock during indexing to control how much memory the terms index uses.

The data structure used by this implementation is very similar to a burst trie (http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.3499), but with added logic to break up too-large blocks of all terms sharing a given prefix into smaller ones.

Use CheckIndex with the -verbose option to see summary statistics on the blocks in the dictionary.

See Lucene90BlockTreeTermsWriter.

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

    • VERSION_START

      public static final int VERSION_START
      Initial terms format.
      See Also:
    • VERSION_MSB_VLONG_OUTPUT

      public static final int VERSION_MSB_VLONG_OUTPUT
      Version that encode output as MSB VLong for better outputs sharing in FST, see GITHUB#12620.
      See Also:
    • VERSION_FST_CONTINUOUS_ARCS

      public static final int VERSION_FST_CONTINUOUS_ARCS
      The version that specialize arc store for continuous label in FST.
      See Also:
    • VERSION_CURRENT

      public static final int VERSION_CURRENT
      Current terms format.
      See Also:
  • Constructor Details

  • Method Details