mirror of https://github.com/apache/lucene.git
Remove unnecessary bit conversion for IndexSorter (#13320)
This commit is contained in:
parent
3aa25baac7
commit
37837133c3
|
@ -266,23 +266,16 @@ public interface IndexSorter {
|
|||
public ComparableProvider[] getComparableProviders(List<? extends LeafReader> readers)
|
||||
throws IOException {
|
||||
ComparableProvider[] providers = new ComparableProvider[readers.size()];
|
||||
final float missingValue;
|
||||
if (this.missingValue != null) {
|
||||
missingValue = this.missingValue;
|
||||
} else {
|
||||
missingValue = 0.0f;
|
||||
}
|
||||
final int missValueBits = Float.floatToIntBits(missingValue != null ? missingValue : 0.0f);
|
||||
|
||||
for (int readerIndex = 0; readerIndex < readers.size(); readerIndex++) {
|
||||
final NumericDocValues values = valuesProvider.get(readers.get(readerIndex));
|
||||
|
||||
providers[readerIndex] =
|
||||
docID -> {
|
||||
float value = missingValue;
|
||||
if (values.advanceExact(docID)) {
|
||||
value = Float.intBitsToFloat((int) values.longValue());
|
||||
}
|
||||
return NumericUtils.floatToSortableInt(value);
|
||||
final int valueBits =
|
||||
values.advanceExact(docID) ? (int) values.longValue() : missValueBits;
|
||||
return NumericUtils.sortableFloatBits(valueBits);
|
||||
};
|
||||
}
|
||||
return providers;
|
||||
|
@ -336,23 +329,17 @@ public interface IndexSorter {
|
|||
public ComparableProvider[] getComparableProviders(List<? extends LeafReader> readers)
|
||||
throws IOException {
|
||||
ComparableProvider[] providers = new ComparableProvider[readers.size()];
|
||||
final double missingValue;
|
||||
if (this.missingValue != null) {
|
||||
missingValue = this.missingValue;
|
||||
} else {
|
||||
missingValue = 0.0f;
|
||||
}
|
||||
final long missingValueBits =
|
||||
Double.doubleToLongBits(missingValue != null ? missingValue : 0.0f);
|
||||
|
||||
for (int readerIndex = 0; readerIndex < readers.size(); readerIndex++) {
|
||||
final NumericDocValues values = valuesProvider.get(readers.get(readerIndex));
|
||||
|
||||
providers[readerIndex] =
|
||||
docID -> {
|
||||
double value = missingValue;
|
||||
if (values.advanceExact(docID)) {
|
||||
value = Double.longBitsToDouble(values.longValue());
|
||||
}
|
||||
return NumericUtils.doubleToSortableLong(value);
|
||||
final long valueBits =
|
||||
values.advanceExact(docID) ? values.longValue() : missingValueBits;
|
||||
return NumericUtils.sortableDoubleBits(valueBits);
|
||||
};
|
||||
}
|
||||
return providers;
|
||||
|
|
Loading…
Reference in New Issue