Skip to content

Commit 4bd2c9c

Browse files
committed
only getting the vector value on sampling when necessary
1 parent c82d719 commit 4bd2c9c

File tree

1 file changed

+3
-1
lines changed
  • server/src/main/java/org/elasticsearch/index/codec/vectors/cluster

1 file changed

+3
-1
lines changed

server/src/main/java/org/elasticsearch/index/codec/vectors/cluster/KMeans.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@ static float[][] pickInitialCentroids(FloatVectorValues vectors, int centroidCou
4242
int centroidsSize = Math.min(vectors.size(), centroidCount);
4343
float[][] centroids = new float[centroidsSize][vectors.dimension()];
4444
for (int i = 0; i < vectors.size(); i++) {
45-
float[] vector = vectors.vectorValue(i);
45+
float[] vector;
4646
if (i < centroidCount) {
47+
vector = vectors.vectorValue(i);
4748
System.arraycopy(vector, 0, centroids[i], 0, vector.length);
4849
} else if (random.nextDouble() < centroidCount * (1.0 / i)) {
4950
int c = random.nextInt(centroidCount);
51+
vector = vectors.vectorValue(i);
5052
System.arraycopy(vector, 0, centroids[c], 0, vector.length);
5153
}
5254
}

0 commit comments

Comments
 (0)