From 6d4da876922fd3f10a798a0ecf932e73c0b6f9c4 Mon Sep 17 00:00:00 2001 From: dyma solovei Date: Fri, 3 Oct 2025 12:06:30 +0200 Subject: [PATCH] fix: remove typos in PQ config and add unit tests --- .../v1/api/collections/quantizers/PQ.java | 8 +-- .../client6/v1/internal/json/JSONTest.java | 71 +++++++++++++++++++ 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/quantizers/PQ.java b/src/main/java/io/weaviate/client6/v1/api/collections/quantizers/PQ.java index e8caefb43..a4806c12b 100644 --- a/src/main/java/io/weaviate/client6/v1/api/collections/quantizers/PQ.java +++ b/src/main/java/io/weaviate/client6/v1/api/collections/quantizers/PQ.java @@ -12,7 +12,7 @@ public record PQ( @SerializedName("centroids") Integer centroids, @SerializedName("segments") Integer segments, @SerializedName("encoder_type") EncoderType encoderType, - @SerializedName("encoder_distribusion") EncoderDistribution encoderDistribution, + @SerializedName("encoder_distribution") EncoderDistribution encoderDistribution, @SerializedName("training_limit") Integer trainingLimit, @SerializedName("bit_compression") Boolean bitCompression) implements Quantization { @@ -24,15 +24,15 @@ public enum EncoderType { } public enum EncoderDistribution { - @SerializedName("log-normal") - NORMAL, @SerializedName("normal") + NORMAL, + @SerializedName("log-normal") LOG_NORMAL; } @Override public Quantization.Kind _kind() { - return Quantization.Kind.RQ; + return Quantization.Kind.PQ; } @Override diff --git a/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java b/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java index 9a6825945..031020614 100644 --- a/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java +++ b/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java @@ -28,6 +28,7 @@ import io.weaviate.client6.v1.api.collections.data.BatchReference; import io.weaviate.client6.v1.api.collections.data.Reference; import io.weaviate.client6.v1.api.collections.data.ReferenceAddManyResponse; +import io.weaviate.client6.v1.api.collections.quantizers.PQ; import io.weaviate.client6.v1.api.collections.rerankers.CohereReranker; import io.weaviate.client6.v1.api.collections.vectorindex.Distance; import io.weaviate.client6.v1.api.collections.vectorindex.Flat; @@ -147,6 +148,76 @@ public static Object[][] testCases() { } """, }, + { + VectorConfig.class, + SelfProvidedVectorizer.of(none -> none + .quantization(Quantization.pq(pq -> pq + .centroids(8) + .encoderDistribution(PQ.EncoderDistribution.NORMAL) + .encoderType(PQ.EncoderType.TILE) + .segments(16) + .trainingLimit(1024) + .bitCompression(true)))), + """ + { + "vectorIndexType": "hnsw", + "vectorizer": {"none": {}}, + "vectorIndexConfig": { + "pq": { + "enabled": true, + "centroids": 8, + "encoder_distribution": "normal", + "encoder_type": "tile", + "segments": 16, + "training_limit": 1024, + "bit_compression": true + } + } + } + """, + }, + { + VectorConfig.class, + SelfProvidedVectorizer.of(none -> none + .quantization(Quantization.sq(sq -> sq + .rescoreLimit(10) + .trainingLimit(1024) + .cache(true)))), + """ + { + "vectorIndexType": "hnsw", + "vectorizer": {"none": {}}, + "vectorIndexConfig": { + "sq": { + "enabled": true, + "rescore_limit": 10, + "training_limit": 1024, + "cache": true + } + } + } + """, + }, + { + VectorConfig.class, + SelfProvidedVectorizer.of(none -> none + .quantization(Quantization.rq(rq -> rq + .rescoreLimit(10) + .bits(8)))), + """ + { + "vectorIndexType": "hnsw", + "vectorizer": {"none": {}}, + "vectorIndexConfig": { + "rq": { + "enabled": true, + "rescore_limit": 10, + "bits": 8 + } + } + } + """, + }, { VectorConfig.class, SelfProvidedVectorizer.of(none -> none