Skip to content

Add scalar metadata fields to Milvus#6594

Open
ultramancode wants to merge 1 commit into
spring-projects:mainfrom
ultramancode:add-milvus-scalar-metadata-fields
Open

Add scalar metadata fields to Milvus#6594
ultramancode wants to merge 1 commit into
spring-projects:mainfrom
ultramancode:add-milvus-scalar-metadata-fields

Conversation

@ultramancode

@ultramancode ultramancode commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Closes #6593

MilvusVectorStore currently stores all document metadata in a JSON field.
Filter expressions therefore reference metadata through JSON paths.

This PR adds an opt-in metadataFields(...) builder option for storing selected metadata keys as Milvus scalar fields.
When Spring AI creates a collection, configured metadata keys are added as nullable scalar fields.
The supported metadata field types are Bool, Int8, Int16, Int32, Int64, Float, Double, and VarChar.

The remaining Milvus scalar field types (Array, JSON, Geometry, and Timestamptz) require type-specific handling and are intentionally left for follow-up work.

On insert, configured metadata values are also stored in those fields, while all metadata remains in the JSON field.
Spring AI filter expressions reference configured keys by their scalar field names.

Metadata keys that are not configured as scalar fields continue to use the JSON metadata field.
If no scalar metadata fields are configured, existing behavior is unchanged.

Verified collection creation, insertion, and filtering for the eight currently supported field types, as well as missing configured values and mixed scalar/JSON filtering, against milvusdb/milvus:v2.6.18.

Signed-off-by: Taewoong Kim <ktw2172@gmail.com>
@ultramancode ultramancode force-pushed the add-milvus-scalar-metadata-fields branch from 443b0ad to f9ac7ec Compare July 10, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support opt-in scalar metadata fields in MilvusVectorStore

2 participants