Skip to content

Commit 9e23c7e

Browse files
authored
Make hierarchical k-means over centroids cheaper (elastic#132316)
1 parent 187936b commit 9e23c7e

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

server/src/main/java/org/elasticsearch/index/codec/vectors/DefaultIVFVectorsWriter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,9 @@ public int size() {
405405
// this are small numbers so we run it wih all the centroids.
406406
final KMeansResult kMeansResult = new HierarchicalKMeans(
407407
fieldInfo.getVectorDimension(),
408-
6,
409-
floatVectorValues.size(),
410-
floatVectorValues.size(),
408+
HierarchicalKMeans.MAX_ITERATIONS_DEFAULT,
409+
HierarchicalKMeans.SAMPLES_PER_CLUSTER_DEFAULT,
410+
HierarchicalKMeans.MAXK,
411411
-1 // disable SOAR assignments
412412
).cluster(floatVectorValues, centroidsPerParentCluster);
413413
final int[] centroidVectorCount = new int[kMeansResult.centroids().length];

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
*/
2020
public class HierarchicalKMeans {
2121

22-
static final int MAXK = 128;
23-
static final int MAX_ITERATIONS_DEFAULT = 6;
24-
static final int SAMPLES_PER_CLUSTER_DEFAULT = 64;
25-
static final float DEFAULT_SOAR_LAMBDA = 1.0f;
22+
public static final int MAXK = 128;
23+
public static final int MAX_ITERATIONS_DEFAULT = 6;
24+
public static final int SAMPLES_PER_CLUSTER_DEFAULT = 64;
25+
public static final float DEFAULT_SOAR_LAMBDA = 1.0f;
2626

2727
final int dimension;
2828
final int maxIterations;

0 commit comments

Comments
 (0)