v6: quantizer settings use snake_case names the server never reads
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
Línea de trabajo
Comienza en src/main/java/io/weaviate/client6/v1/api/collections/quantizers/ e inspecciona los registros RQ, BQ, SQ y PQ comparándolos con las fuentes del servidor indicadas en el issue. Verifica la serialización y deserialización de las claves camelCase y la estructura anidada del encoder de PQ; se considera terminado cuando todos los ajustes afectados hacen round-trip utilizando los nombres exactos del servidor.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The quantizer records use snake_case JSON names the server never reads. Weaviate parses these settings out of the config map by exact key, so everything except enabled, bits, segments, centroids and cache is silently dropped on write and null on read — on every index type, not just one. A user who sets a rescore limit never set one.
The mismatch
Java @SerializedName |
Server key | Server source |
|---|---|---|
rescore_limit (BQ, SQ, RQ) |
rescoreLimit |
entities/vectorindex/hnsw/rq_config.go:31, sq_config.go:25, flat/config.go:147 |
training_limit (PQ, SQ) |
trainingLimit |
hnsw/pq_config.go:49, sq_config.go:24 |
bit_compression (PQ) |
bitCompression |
hnsw/pq_config.go:46 |
encoder_type + encoder_distribution (PQ) |
nested encoder: {type, distribution} |
hnsw/pq_config.go:50, encoderFromMap:97, encoderDistributionFromMap:117 |
The server reads them like this — a plain map lookup, no case folding, no snake_case fallback:
// entities/vectorindex/hnsw/rq_config.go
if err := common.OptionalIntFromMap(rqConfigMap, "rescoreLimit", func(v int) {
and returns them under the same names:
type RQConfig struct {
Enabled bool `json:"enabled"`
Bits int16 `json:"bits"`
RescoreLimit int `json:"rescoreLimit"`
}
So the break is symmetric: what the client sends is ignored, and what the server returns does not bind to the client's fields.
Affected fields
src/main/java/io/weaviate/client6/v1/api/collections/quantizers/:
RQ.rescoreLimit,BQ.rescoreLimit,SQ.rescoreLimitSQ.trainingLimit,PQ.trainingLimitPQ.bitCompressionPQ.encoderType,PQ.encoderDistribution— these are flat components in Java but a nestedencoderobject on the server, so they need a shape change rather than just a rename
enabled, bits, segments, centroids and cache already match and are unaffected.
Suggested fix
Rename the annotations to the camelCase keys, and give PQ's encoder its nested shape. No alternate values are needed: the snake_case spellings were never valid on the wire, so no stored config uses them.
Version
- java-client 6.3.1 (present since the quantizer records were introduced)
- Weaviate 1.39.0
Found while investigating #606, which is unfixable in practice without this: locating a nested rq still yields a null rescoreLimit.
- Lenguaje dominante
- Java
- Estrellas
- 34
- Forks
- 30
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de weaviate/java-client
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
weaviate/java-client#621 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
weaviate/java-client#619 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
weaviate/java-client#615 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
weaviate/java-client#607 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
weaviate/java-client#603 ·
Todos los issues de weaviate/java-client
Issues similares
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abiertoarea/plugin
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Add canonical URLs and a sitemap Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/rocketmq-dashboard#5064 ·