Package org.apache.lucene.util.bkd

# Class BKDRadixSelector

java.lang.Object
org.apache.lucene.util.bkd.BKDRadixSelector

public final class BKDRadixSelector extends Object
Offline Radix selector for BKD tree.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final record`
  `BKDRadixSelector.PathSlice`
  Sliced reference to points in an PointWriter.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BKDRadixSelector(BKDConfig config, int maxPointsSortInHeap, Directory tempDir, String tempFileNamePrefix)`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `heapRadixSort(HeapPointWriter points, int from, int to, int dim, int commonPrefixLength)`
  Sort the heap writer by the specified dim.
  `byte[]`
  `select(BKDRadixSelector.PathSlice points, BKDRadixSelector.PathSlice[] partitionSlices, long from, long to, long partitionPoint, int dim, int dimCommonPrefix)`
  It uses the provided `points` from the given `from` to the given `to` to populate the `partitionSlices` array holder (length > 1) with two path slices so the path slice at position 0 contains `partition - from` points where the value of the `dim` is lower or equal to the `to -from` points on the slice at position 1.

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

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

- ## Constructor Details

  - ### BKDRadixSelector

    public BKDRadixSelector(BKDConfig config, int maxPointsSortInHeap, Directory tempDir, String tempFileNamePrefix)
    Sole constructor.

- ## Method Details

  - ### select

    public byte[] select(BKDRadixSelector.PathSlice points, BKDRadixSelector.PathSlice[] partitionSlices, long from, long to, long partitionPoint, int dim, int dimCommonPrefix) throws IOException
    It uses the provided `points` from the given `from` to the given `to` to populate the `partitionSlices` array holder (length > 1) with two path slices so the path slice at position 0 contains `partition - from` points where the value of the `dim` is lower or equal to the `to -from` points on the slice at position 1.

    The `dimCommonPrefix` provides a hint for the length of the common prefix length for the `dim` where are partitioning the points.

    It return the value of the `dim` at the partition point.

    If the provided `points` is wrapping an `OfflinePointWriter`, the writer is destroyed in the process to save disk space.

    Throws:
      `IOException`

  - ### heapRadixSort

    public void heapRadixSort(HeapPointWriter points, int from, int to, int dim, int commonPrefixLength)
    Sort the heap writer by the specified dim. It is used to sort the leaves of the tree