Package org.apache.lucene.codecs.blockterms

# Class VariableGapTermsIndexWriter

java.lang.Object
org.apache.lucene.codecs.blockterms.TermsIndexWriterBase
org.apache.lucene.codecs.blockterms.VariableGapTermsIndexWriter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class VariableGapTermsIndexWriter extends TermsIndexWriterBase
Selects index terms according to provided pluggable `VariableGapTermsIndexWriter.IndexTermSelector`, and stores them in a prefix trie that's loaded entirely in RAM stored as an FST. This terms index only supports unsigned byte term sort order (unicode codepoint order when the bytes are UTF8).

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

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `VariableGapTermsIndexWriter.EveryNOrDocFreqTermSelector`
  Sets an index term when docFreq >= docFreqThresh, or every interval terms.
  `static final class`
  `VariableGapTermsIndexWriter.EveryNTermSelector`
  Same policy as `FixedGapTermsIndexWriter`
  `static class`
  `VariableGapTermsIndexWriter.IndexTermSelector`
  Hook for selecting which terms should be placed in the terms index.

  ## Nested classes/interfaces inherited from class org.apache.lucene.codecs.blockterms.TermsIndexWriterBase

  `TermsIndexWriterBase.FieldWriter`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected IndexOutput`
  `metaOut`
  `protected IndexOutput`
  `out`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VariableGapTermsIndexWriter(SegmentWriteState state, VariableGapTermsIndexWriter.IndexTermSelector policy)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TermsIndexWriterBase.FieldWriter`
  `addField(FieldInfo field, long termsFilePointer)`
  `void`
  `close()`
  `protected int`
  `indexedTermPrefixLength(BytesRef priorTerm, BytesRef indexedTerm)`
  NOTE: if your codec does not sort in unicode code point order, you must override this method, to simply return indexedTerm.length.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### metaOut

    protected IndexOutput metaOut

  - ### out

    protected IndexOutput out

- ## Constructor Details

  - ### VariableGapTermsIndexWriter

    public VariableGapTermsIndexWriter(SegmentWriteState state, VariableGapTermsIndexWriter.IndexTermSelector policy) throws IOException
    Throws:
      `IOException`

- ## Method Details

  - ### addField

    public TermsIndexWriterBase.FieldWriter addField(FieldInfo field, long termsFilePointer) throws IOException
    Specified by:
      `addField` in class `TermsIndexWriterBase`
    Throws:
      `IOException`

  - ### indexedTermPrefixLength

    protected int indexedTermPrefixLength(BytesRef priorTerm, BytesRef indexedTerm)
    NOTE: if your codec does not sort in unicode code point order, you must override this method, to simply return indexedTerm.length.

  - ### close

    public void close() throws IOException
    Throws:
      `IOException`