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

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, isEstimatedPointCountGreaterThanOrEqualTo, size`

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

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

## Constructor Details

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

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