Package org.apache.lucene.util.bkd

## Class BKDReader

- java.lang.Object
- - org.apache.lucene.index.PointValues
  - - org.apache.lucene.util.bkd.BKDReader

-     public class BKDReader
      extends PointValues

  Handles reading a block KD-tree in byte[] space previously written with `BKDWriter`.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.lucene.index.PointValues

      `PointValues.IntersectVisitor, PointValues.PointTree, PointValues.Relation`

  - ### Field Summary

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

      `MAX_DIMENSIONS, MAX_INDEX_DIMENSIONS, MAX_NUM_BYTES`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BKDReader​(IndexInput metaIn, IndexInput indexIn, IndexInput dataIn)` | Caller must pre-seek the provided `IndexInput` to the index location that `BKDWriter.finish(org.apache.lucene.store.IndexOutput, org.apache.lucene.store.IndexOutput, org.apache.lucene.store.IndexOutput)` returned.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getBytesPerDimension()` | Returns the number of bytes per dimension
    `int` | `getDocCount()` | Returns the total number of documents that have indexed at least one point.
    `byte[]` | `getMaxPackedValue()` | Returns maximum value for each dimension, packed, or null if `PointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)` is `0`
    `byte[]` | `getMinPackedValue()` | Returns minimum value for each dimension, packed, or null if `PointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)` is `0`
    `int` | `getNumDimensions()` | Returns how many dimensions are represented in the values
    `int` | `getNumIndexDimensions()` | Returns how many dimensions are used for the index
    `PointValues.PointTree` | `getPointTree()` | Create a new `PointValues.PointTree` to navigate the index
    `long` | `size()` | Returns the total number of indexed points across all documents.

    - ### Methods inherited from class org.apache.lucene.index.PointValues

      `estimateDocCount, estimatePointCount, getDocCount, getMaxPackedValue, getMinPackedValue, intersect, size`

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

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

- - ### Constructor Detail

    - #### BKDReader

          public BKDReader​(IndexInput metaIn,
                           IndexInput indexIn,
                           IndexInput dataIn)
                    throws IOException

      Caller must pre-seek the provided `IndexInput` to the index location that `BKDWriter.finish(org.apache.lucene.store.IndexOutput, org.apache.lucene.store.IndexOutput, org.apache.lucene.store.IndexOutput)` returned. BKD tree is always stored off-heap.
      Throws:
        `IOException`

  - ### Method Detail

    - #### getPointTree

          public PointValues.PointTree getPointTree()
                                             throws IOException

      Description copied from class: `PointValues`
      Create a new `PointValues.PointTree` to navigate the index
      Specified by:
        `getPointTree` in class `PointValues`
      Throws:
        `IOException`

    - #### getMinPackedValue

          public byte[] getMinPackedValue()

      Description copied from class: `PointValues`
      Returns minimum value for each dimension, packed, or null if `PointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)` is `0`
      Specified by:
        `getMinPackedValue` in class `PointValues`

    - #### getMaxPackedValue

          public byte[] getMaxPackedValue()

      Description copied from class: `PointValues`
      Returns maximum value for each dimension, packed, or null if `PointValues.size(org.apache.lucene.index.IndexReader, java.lang.String)` is `0`
      Specified by:
        `getMaxPackedValue` in class `PointValues`

    - #### getNumDimensions

          public int getNumDimensions()
                               throws IOException

      Description copied from class: `PointValues`
      Returns how many dimensions are represented in the values
      Specified by:
        `getNumDimensions` in class `PointValues`
      Throws:
        `IOException`

    - #### getNumIndexDimensions

          public int getNumIndexDimensions()
                                    throws IOException

      Description copied from class: `PointValues`
      Returns how many dimensions are used for the index
      Specified by:
        `getNumIndexDimensions` in class `PointValues`
      Throws:
        `IOException`

    - #### getBytesPerDimension

          public int getBytesPerDimension()
                                   throws IOException

      Description copied from class: `PointValues`
      Returns the number of bytes per dimension
      Specified by:
        `getBytesPerDimension` in class `PointValues`
      Throws:
        `IOException`

    - #### size

          public long size()

      Description copied from class: `PointValues`
      Returns the total number of indexed points across all documents.
      Specified by:
        `size` in class `PointValues`

    - #### getDocCount

          public int getDocCount()

      Description copied from class: `PointValues`
      Returns the total number of documents that have indexed at least one point.
      Specified by:
        `getDocCount` in class `PointValues`