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