Skip to content

Commit 81b5409

Browse files
committed
Don't use discretize to calculate dimensions, removed quantized dimensions
1 parent 7a9015a commit 81b5409

File tree

3 files changed

+5
-17
lines changed

3 files changed

+5
-17
lines changed

server/src/main/java/org/elasticsearch/index/codec/vectors/es910/ES910BinaryFlatVectorsScorer.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@ public RandomVectorScorer getRandomVectorScorer(
7272
if (similarityFunction == COSINE) {
7373
VectorUtil.l2normalize(copy);
7474
}
75-
target = copy;
76-
byte[] quantized = new byte[target.length];
77-
OptimizedScalarQuantizer.QuantizationResult queryCorrections = quantizer.scalarQuantize(target, quantized, queryBits, centroid);
75+
byte[] quantized = new byte[copy.length];
76+
OptimizedScalarQuantizer.QuantizationResult queryCorrections = quantizer.scalarQuantize(copy, quantized, queryBits, centroid);
7877
return new RandomVectorScorer.AbstractRandomVectorScorer(vectorValues) {
7978
@Override
8079
public float score(int i) throws IOException {
@@ -168,7 +167,7 @@ public static class BinarizedRandomVectorScorer extends UpdateableRandomVectorSc
168167
) {
169168
super(targetVectors);
170169
this.queryVectors = queryVectors;
171-
this.quantizedQuery = new byte[queryVectors.quantizedDimension()];
170+
this.quantizedQuery = new byte[queryVectors.dimension()];
172171
this.targetVectors = targetVectors;
173172
this.similarityFunction = similarityFunction;
174173
bitScale = 1.0F / (float) ((1 << queryBits) - 1);

server/src/main/java/org/elasticsearch/index/codec/vectors/es910/ES910BinaryQuantizedVectorsWriter.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@
4646
import org.apache.lucene.util.hnsw.RandomVectorScorerSupplier;
4747
import org.apache.lucene.util.hnsw.UpdateableRandomVectorScorer;
4848
import org.elasticsearch.core.SuppressForbidden;
49-
import org.elasticsearch.index.codec.vectors.BQSpaceUtils;
50-
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
5149
import org.elasticsearch.index.codec.vectors.OptimizedScalarQuantizer;
5250

5351
import java.io.Closeable;
@@ -737,13 +735,11 @@ static class OffHeapBinarizedQueryVectorValues {
737735
this.slice = data;
738736
this.dimension = dimension;
739737
this.size = size;
740-
// 4x the quantized binary dimensions
741-
int binaryDimensions = (BQVectorUtils.discretize(dimension, 64) / 8) * BQSpaceUtils.B_QUERY;
742-
this.byteBuffer = ByteBuffer.allocate(binaryDimensions);
738+
this.byteBuffer = ByteBuffer.allocate(dimension);
743739
this.binaryValue = byteBuffer.array();
744740
// + 1 for the quantized sum
745741
this.correctiveValues = new float[3];
746-
this.byteSize = binaryDimensions + Float.BYTES * 3 + Short.BYTES;
742+
this.byteSize = dimension + Float.BYTES * 3 + Short.BYTES;
747743
}
748744

749745
public OptimizedScalarQuantizer.QuantizationResult getCorrectiveTerms(int targetOrd) throws IOException {
@@ -764,10 +760,6 @@ public OptimizedScalarQuantizer.QuantizationResult getCorrectiveTerms(int target
764760
);
765761
}
766762

767-
int quantizedDimension() {
768-
return byteBuffer.array().length;
769-
}
770-
771763
public int size() {
772764
return size;
773765
}

server/src/main/java/org/elasticsearch/index/codec/vectors/es910/OffHeapBinarizedVectorValues.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.lucene.util.Bits;
3030
import org.apache.lucene.util.hnsw.RandomVectorScorer;
3131
import org.apache.lucene.util.packed.DirectMonotonicReader;
32-
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
3332
import org.elasticsearch.index.codec.vectors.OptimizedScalarQuantizer;
3433

3534
import java.io.IOException;
@@ -53,7 +52,6 @@ abstract class OffHeapBinarizedVectorValues extends BinarizedByteVectorValues {
5352
final OptimizedScalarQuantizer binaryQuantizer;
5453
final float[] centroid;
5554
final float centroidDp;
56-
private final int discretizedDimensions;
5755

5856
OffHeapBinarizedVectorValues(
5957
int dimension,
@@ -77,7 +75,6 @@ abstract class OffHeapBinarizedVectorValues extends BinarizedByteVectorValues {
7775
this.byteBuffer = ByteBuffer.allocate(dimension);
7876
this.binaryValue = byteBuffer.array();
7977
this.binaryQuantizer = quantizer;
80-
this.discretizedDimensions = BQVectorUtils.discretize(dimension, 64);
8178
}
8279

8380
@Override

0 commit comments

Comments
 (0)