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
`static class` `VariableGapTermsIndexWriter.EveryNOrDocFreqTermSelector` Sets an index term when docFreq >= docFreqThresh, or every interval terms.
`static 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
`protected IndexOutput` `out`

### Constructor Summary

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

### Method Summary

Methods
`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 Detail

#### out

    protected final IndexOutput out

### Constructor Detail

#### VariableGapTermsIndexWriter

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

Throws:
  `IOException`

### Method Detail

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