milvus
Vector DatabasesA high‑performance vector database for scaling AI applications
Features
- Stores and efficiently searches billions of vectors (text, images, multi‑modal)
- Distributed, K8s‑native architecture for horizontal scaling
- Real‑time streaming updates with high availability
- Supports hybrid search combining vector similarity with metadata filters
Recent releases
View all 16 releases →- Struct‑array vector sub‑field column types (ColumnFloatVectorArray, ColumnBinaryVectorArray, etc.)
- EmbeddingList search vector types for struct‑array fields with MAX_SIM support
- WithStructArrayColumn helper for insert/upsert and gRPC authority configuration via ClientConfig.WithGrpcAuthority
Full changelog
Highlights
- Completes Go SDK (
client/v2) struct-array support, especially vector sub-fields and EmbeddingList/MAX_SIM search. - Fixes custom gRPC
DialOptionsso they no longer drop the SDK's default keepalive, backoff, and max receive message-size settings.
New Features
-
Struct-array vector sub-field columns: Added vector-array column types for struct-array vector sub-fields:
ColumnFloatVectorArray,ColumnFloat16VectorArray,ColumnBFloat16VectorArray,ColumnBinaryVectorArray, andColumnInt8VectorArray. These supportArrayOfVectorsub-fields inside struct arrays. (#49164) -
EmbeddingList search vector types: Added
entity.FloatVectorArray,entity.Float16VectorArray,entity.BFloat16VectorArray,entity.BinaryVectorArray, andentity.Int8VectorArray, dispatching them to the matchingPlaceholderType_EmbList*values. This enables MAX_SIM / EmbeddingList search against struct-array vector sub-fields such asclips[clip_emb]. (#49164) -
Struct-array insert/upsert helper: Added
WithStructArrayColumn(name, structSchema, rows)to column-based insert/upsert options. The helper accepts[]map[string]anyrow data and infers scalar/vector sub-column types from the provided struct schema. (#49164) -
gRPC authority configuration: Added
ClientConfig.WithGrpcAuthority(authority)for proxy-based routing through the gRPC:authorityheader. (#49186)
Bug Fixes
-
Default gRPC dial options are preserved:
Client.dialOptions()now always appliesDefaultGrpcOptsbefore user-providedDialOptions, retaining SDK defaults for keepalive, backoff, and max receive message size while still allowing caller overrides. (#49186, issue #48828) -
Struct-array schema validation: Added
Schema.Validate()andStructSchema.Validate()and wired validation intoCreateCollection. Invalid struct-array sub-fields are rejected before the RPC, including nested array/struct fields, sparse vector sub-fields, duplicate sub-field names, and top-level-only flags such as primary key, partition key, clustering key, nullable, default value, dynamic, and autoID. (#49164, issue #49163) -
Struct-array schema round trip:
Schema.ReadProto()now restoresStructArrayFields, andProtoMessage()preservesmax_capacityby propagating the parent setting to sub-fields when needed.Array/ArrayOfVectorwrappers from the server are unwrapped back to user-facing scalar/vector sub-field types. (#49164) -
Struct-array write correctness:
columnStructArraynow enforces equal lengths across sub-fields, appends a row atomically with rollback on partial sub-field failure, and serializes top-level struct-array field data asDataType_ArrayOfStruct. (#49164) -
Vector-array response decoding: Query/search result decoding now handles
DataType_ArrayOfVector, validates nil vector rows, validates payload lengths against dimension/width, rejects invalid binary vector dimensions, and preserves vector-array sub-field data in Go column types. (#49164) -
Builder error handling:
WithStructArrayColumnstores construction errors and returns them fromInsertRequest/UpsertRequestinstead of panicking during chained builder calls. (#49164)
Contributors
- @zhuwenxing
- @liliu-z
- @milanchovatiya-boop
- OpenTelemetry upgraded to v1.40.0 to fix CWE-426 (Untrusted Search Path) vulnerability
- Go runtime upgraded to 1.24.12 to address security CVEs
- TruncateCollection API enabling rapid data removal
- GetReplicateConfiguration API exposing replication topology
- Nullable Go pointer fields allow NULL values in row data
- Native support for Google Gemini text embedding models
- Consistent KV path and key handling across storage backends
- Go SDK now includes TruncateCollection for bulk collection cleanup
- Bumped OpenTelemetry to v1.40.0 to fix CWE-426 untrusted search path vulnerability
- GetReplicateConfiguration API for inspecting replication topology with redacted tokens
- Configurable TLS minimum version for object storage connections across all backends
- Automatic warmup for large tenant collections to reduce cold‑start query latency
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.