# Package org.apache.lucene.util.bkd

package org.apache.lucene.util.bkd
Block KD-tree, implementing the generic spatial data structure described in this paper.

- Related Packages
  Package
  Description
  org.apache.lucene.util
  Some utility classes.
- Class
  Description
  BKDConfig
  Basic parameters for indexing points on the BKD tree.
  BKDRadixSelector
  Offline Radix selector for BKD tree.
  BKDRadixSelector.PathSlice
  Sliced reference to points in an PointWriter.
  BKDReader
  Handles reading a block KD-tree in byte[] space previously written with `BKDWriter`.
  BKDWriter
  Recursively builds a block KD-tree to assign all incoming points in N-dim space to smaller and smaller N-dim rectangles (cells) until the number of points in a given rectangle is <= `config.maxPointsInLeafNode()`.
  HeapPointReader
  Utility class to read buffered points from in-heap arrays.
  HeapPointWriter
  Utility class to write new points into in-heap arrays.
  MutablePointTreeReaderUtils
  Utility APIs for sorting and partitioning buffered points.
  OfflinePointReader
  Reads points from disk in a fixed-with format, previously written with `OfflinePointWriter`.
  OfflinePointWriter
  Writes points to disk in a fixed-with format.
  PointReader
  One pass iterator through all points previously written with a `PointWriter`, abstracting away whether points are read from (offline) disk or simple arrays in heap.
  PointValue
  Represents a dimensional point value written in the BKD tree.
  PointWriter
  Appends many points, and then at the end provides a `PointReader` to iterate those points.