milvus-2.6.22
Release note is coming soon...
milvus-3.0.0
Release note is coming...
milvus-2.6.21
Release note is coming...
client/v3.0.0-beta
This is the first beta release of the Milvus Go SDK v3, targeting Milvus 3.0. It is compared against client/v2.6.5.
This is a beta release. APIs and protocol details may change before v3.0.0 GA.
- Migrates the Go module to github.com/milvus-io/milvus/client/v3.
- Decouples the standalone client from Milvus server-side pkg modules, substantially reducing server-only transitive dependencies.
- Adds collection snapshot management and asynchronous restore workflows.
- Adds read-only external collections with manual refresh support.
- Adds search aggregation, search by primary-key IDs, query ordering, and namespace-scoped operations.
- Adds client-side telemetry and structured RPC error inspection.
-
Module path: Update all imports from:
github.com/milvus-io/milvus/client/v2
to:
github.com/milvus-io/milvus/client/v3
-
Proto types: Applications directly using generated Milvus messages must migrate from milvus-proto/go-api/v2 to milvus-proto/go-api/v3. Although many high-level builders retain familiar APIs, v2 and v3 protobuf types are not interchangeable.
-
Installation:
go get github.com/milvus-io/milvus/client/v3@v3.0.0-beta
-
Go version: The module’s go directive is Go 1.24.9. The client README recommends Go 1.24.12 or later.
-
Telemetry behavior: Client telemetry is enabled by default. Set ClientConfig.TelemetryConfig.Enabled to false to disable heartbeat and metrics reporting.
-
Collection snapshots: Added APIs to create, drop, list, and describe collection-scoped snapshots. Snapshots can be restored asynchronously to new collections, with APIs for querying and listing restore jobs. Snapshot data can also be pinned and unpinned to control garbage collection. (#44361, #48143)
-
External collections: Added schema builders for external data sources and external-field mappings:
- Schema.WithExternalSource
- Schema.WithExternalSpec
- Field.WithExternalField
External collections can be searched and queried using standard client APIs and refreshed through RefreshExternalCollection, GetRefreshExternalCollectionProgress, and ListRefreshExternalCollectionJobs. (#46886, #47492, #49531)
-
Search aggregation: Added bucket aggregation builders supporting multi-field keys, nested aggregations, top hits, ordering, and avg, sum, count, min, and max metrics. Results are returned through ResultSet.AggregationBuckets. (#50448)
-
Search by primary-key IDs: Added NewSearchByIDsOption and AnnRequest.WithIDs for using existing entities as vector-search inputs. Int64 and VarChar primary keys are supported. (#47633)
-
Namespace-scoped operations: Added WithNamespace support to Search, Hybrid Search, Query, iterators, Insert, Upsert, and Delete options. (#50153)
-
Query ordering: Added QueryOption.WithOrderByFields, accepting expressions such as price:desc and name:asc. An explicit query limit is required when ordering is used. (#51173, #51220)
-
Client telemetry: Added configurable collection of request counts, errors, and latency metrics, including P99 latency, recent-error tracking, periodic server heartbeats, and server- pushed command handling. (#47523, #47542)
-
Structured RPC errors: Added public RPCError, common error sentinels, ErrorCode, and IsRetryableError. RPC errors with matching Milvus codes can now be inspected using errors.Is.
-
Dynamic StructArray fields: Added Client.AddCollectionStructField and NewAddCollectionStructFieldOption, including validation and preservation of parent nullable and max_capacity metadata. (#50276)
-
RBAC descriptions: Added user and role descriptions, role-description updates through AlterRole, and force-drop support for roles. (#50184, #50186, #47071)
-
Import two-phase commit: Added REST wrappers for committing or aborting bulk-import jobs through CommitImport and AbortImport. (#50177)
-
Message salvage API: Added the high-level Client.DumpMessages streaming wrapper for replication and recovery workflows. (#50343, #50574)
-
MinHash: Added FunctionTypeMinHash support to the Go SDK function API. (#45322)
- Default gRPC keepalive, reconnect, and receive-size options are now always applied before user-provided DialOptions. (#49186)
- Row-based Insert and Upsert builders now preserve row-based processing when chaining partition, namespace, partial-update, and Array-operation options.
- Client-local error, retry, crypto, concurrency, property, and type helpers replace the dependency on Milvus server packages.
- Updated the v3 protobuf, gRPC, protobuf runtime, and supporting Go dependencies.
- This SDK release is intended for Milvus 3.0 beta and is not guaranteed to be compatible with Milvus 2.6 servers.
- ExportSnapshot and RestoreExternalSnapshot expose preview API contracts in this release, but the server implementation currently returns Unimplemented.
- Flush a collection before creating a snapshot if growing-segment data must be included.
- External collections are read-only; Insert, Upsert, Delete, Import, partition management, and schema alteration are not supported.
- Primary keys must remain unique across namespaces within the same collection because delete and upsert tombstones remain collection-scoped.
- Search aggregation cannot be combined with legacy group-by, offsets, or search iterators. Bracketed JSON-path expressions are not yet supported.
- Search by primary-key IDs is not supported in Hybrid Search or Search Iterator.
milvus-2.6.20
Release note is coming soon...
milvus-2.6.19
Release note is coming soon...
milvus-2.6.18
Release note is coming soon...
client/v2.6.5
- Adds Go SDK support for nullable vector columns across dense, binary, sparse, and int8 vector types.
- Adds Array field partial update helpers for
ARRAY_APPENDandARRAY_REMOVEin upsert requests. - Validates that vector fields added to existing collections are nullable before sending
AddCollectionFieldrequests. - Bumps the Go SDK version constant to
2.6.5and updatesmilvus-proto/go-api/v2tov2.6.17.
-
Nullable vector columns: Added nullable column constructors for vector fields:
NewNullableColumnFloatVector,NewNullableColumnBinaryVector,NewNullableColumnFloat16Vector,NewNullableColumnBFloat16Vector,NewNullableColumnInt8Vector, andNewNullableColumnSparseFloatVector. These constructors accept compact non-null vector values plusvalidData, and validate that the values length matches the valid row count. (#49848) -
Nullable vector response decoding:
FieldDataColumnnow decodes nullable vector field data usingValidDataforFloatVector,BinaryVector,Float16Vector,BFloat16Vector,SparseFloatVector, andInt8Vector. Null rows are preserved in the returned column while compact wire-format vector payloads are expanded back to row-aligned columns. (#49848) -
Array partial update operations: Added upsert helpers
WithArrayAppend(fieldName),WithArrayRemove(fieldName), andWithFieldPartialOp(fieldName, op)for Array field partial updates. Non-REPLACEfield ops are serialized intoUpsertRequest.FieldOpsand automatically enablepartial_updatefor both column-based and row-based upserts. (#49328)
-
AddCollectionField vector validation:
AddCollectionFieldnow validates options before sending the RPC and rejects vector fields added to existing collections unless the field is markednullable=true, preventing invalid schema changes from reaching the server. (#49848) -
All-null sparse vector handling: Sparse vector column serialization now handles empty value sets by emitting dimension
0, allowing all-null nullable sparse vector columns to round-trip without panics or invalid dimension calculations. (#49848) -
Nullable column row counts: Added
Column.ValidCount()support so nullable columns can report the number of non-null rows separately from total row count. Struct-array columns return their total length. (#49848)
- @marcelo-cjl
- @weiliu1031
milvus-2.6.17
Release note is coming soon..
milvus-2.6.16
Release note is coming...