Package org.apache.lucene.backward_codecs.lucene40.blocktree

## Class Lucene40BlockTreeTermsReader

- java.lang.Object
- - org.apache.lucene.index.Fields
  - - org.apache.lucene.codecs.FieldsProducer
    - - org.apache.lucene.backward_codecs.lucene40.blocktree.Lucene40BlockTreeTermsReader

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`, `Iterable<String>`

      public final class Lucene40BlockTreeTermsReader
      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 `BlockTreeTermsWriter`.

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

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `VERSION_COMPRESSED_SUFFIXES` | Suffixes are compressed to save space.
    `static int` | `VERSION_CURRENT` | Current terms format.
    `static int` | `VERSION_META_FILE` | Metadata is written to its own file.
    `static int` | `VERSION_META_LONGS_REMOVED` | The long[] + byte[] metadata has been replaced with a single byte[].
    `static int` | `VERSION_START` | Initial terms format.

    - ### Fields inherited from class org.apache.lucene.index.Fields

      `EMPTY_ARRAY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Lucene40BlockTreeTermsReader​(PostingsReaderBase postingsReader, SegmentReadState state)` | Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `checkIntegrity()` |
    `void` | `close()` |
    `Iterator<String>` | `iterator()` |
    `int` | `size()` |
    `Terms` | `terms​(String field)` |
    `String` | `toString()` |

    - ### Methods inherited from class org.apache.lucene.codecs.FieldsProducer

      `getMergeInstance`

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### VERSION_START

          public static final int VERSION_START

      Initial terms format.
      See Also:
        Constant Field Values

    - #### VERSION_META_LONGS_REMOVED

          public static final int VERSION_META_LONGS_REMOVED

      The long[] + byte[] metadata has been replaced with a single byte[].
      See Also:
        Constant Field Values

    - #### VERSION_COMPRESSED_SUFFIXES

          public static final int VERSION_COMPRESSED_SUFFIXES

      Suffixes are compressed to save space.
      See Also:
        Constant Field Values

    - #### VERSION_META_FILE

          public static final int VERSION_META_FILE

      Metadata is written to its own file.
      See Also:
        Constant Field Values

    - #### VERSION_CURRENT

          public static final int VERSION_CURRENT

      Current terms format.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Lucene40BlockTreeTermsReader

          public Lucene40BlockTreeTermsReader​(PostingsReaderBase postingsReader,
                                              SegmentReadState state)
                                       throws IOException

      Sole constructor.
      Throws:
        `IOException`

  - ### Method Detail

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in class `FieldsProducer`
      Throws:
        `IOException`

    - #### iterator

          public Iterator<String> iterator()

      Specified by:
        `iterator` in interface `Iterable<String>`
      Specified by:
        `iterator` in class `Fields`

    - #### terms

          public Terms terms​(String field)
                      throws IOException

      Specified by:
        `terms` in class `Fields`
      Throws:
        `IOException`

    - #### size

          public int size()

      Specified by:
        `size` in class `Fields`

    - #### checkIntegrity

          public void checkIntegrity()
                              throws IOException

      Specified by:
        `checkIntegrity` in class `FieldsProducer`
      Throws:
        `IOException`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`