Package org.apache.lucene.util
Class StableMSBRadixSorter
java.lang.Object
org.apache.lucene.util.Sorter
org.apache.lucene.util.MSBRadixSorter
org.apache.lucene.util.StableMSBRadixSorter
Stable radix sorter for variable-length strings.
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
A MergeSorter taking advantage of temporary storage. -
Field Summary
Fields inherited from class org.apache.lucene.util.MSBRadixSorter
HISTOGRAM_SIZE, LENGTH_THRESHOLD, LEVEL_THRESHOLD, maxLength
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Sorter
getFallbackSorter
(int k) Get a fall-back sorter which may assume that the first k bytes of all compared strings are equal.protected void
reorder
(int from, int to, int[] startOffsets, int[] endOffsets, int k) Reorder elements in stable way, since Dutch sort does not guarantee ordering for same values.protected abstract void
restore
(int i, int j) Restore values between i-th and j-th(excluding) in temporary storage into original storage.protected abstract void
save
(int i, int j) Save the i-th value into the j-th position in temporary storage.Methods inherited from class org.apache.lucene.util.MSBRadixSorter
buildHistogram, byteAt, compare, getBucket, shouldFallback, sort, sort
Methods inherited from class org.apache.lucene.util.Sorter
comparePivot, setPivot, swap
-
Constructor Details
-
StableMSBRadixSorter
public StableMSBRadixSorter(int maxLength)
-
-
Method Details
-
save
protected abstract void save(int i, int j) Save the i-th value into the j-th position in temporary storage. -
restore
protected abstract void restore(int i, int j) Restore values between i-th and j-th(excluding) in temporary storage into original storage. -
getFallbackSorter
Description copied from class:MSBRadixSorter
Get a fall-back sorter which may assume that the first k bytes of all compared strings are equal.- Overrides:
getFallbackSorter
in classMSBRadixSorter
-
reorder
protected void reorder(int from, int to, int[] startOffsets, int[] endOffsets, int k) Reorder elements in stable way, since Dutch sort does not guarantee ordering for same values.When this method returns, startOffsets and endOffsets are equal.
- Overrides:
reorder
in classMSBRadixSorter
- Parameters:
startOffsets
- start offsets per bucketendOffsets
- end offsets per bucket
-