Skip to content

v6: dynamic index quantization is never parsed into VectorConfig #606

Description

@dudanogueira

VectorConfig.CustomTypeAdapterFactory.read looks for the bq/pq/sq/rq keys at the top level of vectorIndexConfig. That is correct for hnsw and flat, but a dynamic index nests them one level deeper, under hnsw/flat, so the quantizer is silently dropped on read.

Verified against a live Weaviate 1.38.0 collection with a dynamic index and RQ enabled:

raw     hnsw.rq = {"bits":8,"enabled":true,"rescoreLimit":20}
typed   quantization = null

The same root cause loses Dynamic.flat's own quantizer.

Also dropped on read at the dynamic level: vectorIndexConfig.distance.

Fixing this needs a design call first: under dynamic, hnsw and flat can carry different quantizers, but VectorConfig has a single quantization() slot.

Found while working on #598, which adds getConfigAsJson as a raw-JSON escape hatch — that unblocks callers who need the complete picture, but does not fix the typed mapping.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions