# Package org.apache.lucene.util.bkd

Block KD-tree, implementing the generic spatial data structure described in this paper.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  PointWriter | Appends many points, and then at the end provides a `PointReader` to iterate those points.

- Class Summary
  Class | Description
  --- | ---
  BKDReader | Handles intersection of an multi-dimensional shape in byte[] space with a block KD-tree previously written with `BKDWriter`.
  BKDReader.IntersectState | Used to track all state for a single call to `BKDReader.intersect(org.apache.lucene.index.PointValues.IntersectVisitor)`.
  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 <= `maxPointsInLeafNode`.
  HeapPointReader | Utility class to read buffered points from in-heap arrays.
  HeapPointWriter | Utility class to write new points into in-heap arrays.
  MutablePointsReaderUtils | 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 a read from (offline) disk or simple arrays in heap.

## Package org.apache.lucene.util.bkd Description

Block KD-tree, implementing the generic spatial data structure described in this paper.

Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.