Releases: milvus-io/milvus
milvus-2.6.4
v2.6.4
Release date: October 21, 2025
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.4 | 2.6.2 | 2.6.1 | 2.6.6 | 2.6.1 |
We are excited to announce the release of Milvus 2.6.4, featuring a range of powerful new capabilities, performance enhancements, and essential bug fixes. This update introduces important features such as Struct in ARRAY for advanced data modeling. Additionally, we have enabled JSON Shredding by default, further improving query performance and efficiency. Several critical bugs have also been addressed to ensure greater stability and reliability. With this release, Milvus continues to provide a more robust and efficient experience for all users. Below are the key highlights of this release.
Features
- Struct in ARRAY: Milvus introduced the new data type, Struct, allowing users to organize and manage multiple related fields within a single entity. Currently, Struct can only be used as an element under DataType.ARRAY, enabling features like Array of Vector, where each row contains multiple vectors, opening up new possibilities for complex data modeling and search. (#42148)
- Supported Qwen GTE-rerank-v2 model in DashScope (#44660)
Improvements
- Upgraded Go version to 1.24.6 with image builder (#44763)
- Enabled default JSON Shredding (#44811)
- Added disk quota for loaded binlog size to prevent query node load failures (#44932)
- Enabled mmap support for struct array in MemVectorIndex (#44832)
- Added caching layer management for TextMatchIndex (#44768)
- Optimized bitmap reverse lookup performance (#44838)
- Updated Knowhere version (#44707 #44765)
- Removed logical usage checks during segment loading (#44770)
- Added access log field for template value length information (#44783)
- Allowed overwriting current index type during index build (#44754)
- Added load parameters for vector index (#44749)
- Unified compaction executor task state management (#44722)
- Added refined logs for task scheduler in QueryCoord (#44725)
- Ensured accesslog.$consistency_level represents actual value used (#44711)
- Removed redundant channel manager from datacoord (#44679)
Bug fixes
- Removed GCC from build Dockerfile to fix CVE (#44882)
- Ensured deterministic search result ordering when scores are equal (#44884)
- Reranked before requery if reranker didn't use field data (#44943)
- Ensured promise fulfillment when CreateArrowFileSystem throws an exception (#44976)
- Fixed missing disk encryption config (#44839)
- Fixed deactivate balance checker causing balance stop issue (#44836)
- Fixed issue where "not equal" doesn't include "none" (#44960)
- Supported JSON default value in CreateArrowScalarFromDefaultValue (#44952)
- Used short debug string to avoid newlines in debug logs (#44929)
- Fixed exists expression for JSON flat index (#44951)
- Unified JSON exists path semantics (#44926)
- Fixed panic caused by empty internal insert message (#44906)
- Updated AI/SAQ parameters (#44862)
- Removed limit on deduplication when autoindex is disabled (#44824)
- Avoided concurrent reset/add operations on DataCoord metrics (#44815)
- Fixed bug in JSON_contains(path, int) (#44818)
- Avoided eviction in caching layer during JSON handling (#44813)
- Fixed wrong results from the exp filter when skipped (#44779)
- Checked if query node is SQN with label and streaming node list (#44793)
- Fixed BM25 with boost returning unordered results (#44759)
- Fixed bulk import with auto ID (#44694)
- Passed file system via FileManagerContext when loading index (#44734)
- Used "eventually" and fixed task ID appearing in both executing and completed states (#44715)
- Removed incorrect start time tick to avoid filtering DMLs with timeticks less than it (#44692)
- Made AWS credential provider a singleton (#44705)
- Disabled shredding for JSON path containing digits (#44808)
- Fixed valid unit test for TestUnaryRangeJsonNullable (#44990)
- Fixed unit tests and removed file system fallback logic (#44686)
milvus-2.5.19
v2.5.19
Release date: October 22, 2025
| Milvus version | Python SDK version | Node.js SDK version | Java SDK version |
|---|---|---|---|
| 2.5.19 | 2.5.16 | 2.5.13 | 2.5.14 |
We are excited to announce Milvus 2.5.19! This release includes important performance optimizations, updates to Go and Arrow/Go versions, and enhanced support for hybrid search requery policies and granular flush targets. Several bug fixes also improve stability. We recommend upgrading to Milvus 2.5.19 to benefit from these improvements.
Improvements
- bump go verion to 1.24.6 (#44718)
- Bump Arrow/Go to v17 (#44663)
- Ensure accesslog.$consistency_level represents the actual value used (#44708)
- Refactor balance checker using priority queue (#44588)
- Add support for granular flush targets in flushall operation (#44431)
- Add configuration for hybrid search requery policy via
common.requery.hybridSearchPolicy(#44467) - Optimize binary_search_string performance (#44470)
Bug fixes
- Fix duplicate L0 segment load task generation during channel balancing (#44700)
- Skip empty loop when processing growing segments (#44608)
- Fix bulk import issue with auto ID (#44601)
- Clean up collection metrics after dropping on RootCoord (#44525)
- Fix incorrect local path usage in IDF Oracle (#44328)
client/v2.6.1
Milvus Go SDK v2.6.1 Release Notes
Release Date: October 11, 2025
Overview
This release brings important bug fixes, performance improvements, and new feature support to the Milvus Go SDK. The Go SDK v2.6.1 is compatible with Milvus v2.6.x and includes support for new data types, enhanced CDC capabilities, and improved developer experience.
What's New
Features
Geospatial Data Type Support (#44547)
- Added support for Geospatial data types and GIS functions
- Enables creation and description of collections with geospatial type
- Support for inserting, loading, querying and searching geospatial data
- GIS functions like ST_EQUALS are now supported in query expressions
- R-Tree index support for geometry type
- Data exchange using WKT format with WKB for internal processing
CDC (Change Data Capture) Support (#44124)
- New CDC service implementation for Milvus 2.6
- Log-based cross-cluster replication capabilities
- Enhanced data synchronization between clusters
Manual L0 Compaction (#44440)
- Added support for manually triggering L0 compaction operations
- Better control over compaction processes
Granular FlushAll Operations (#44234)
- Enhanced FlushAll functionality to support targeting specific collections within databases
- More precise control over data persistence operations
- Maintains backward compatibility with database-level flushing
AutoID with Primary Key Insertion (#44561)
- Users can now insert primary key data even when AutoID is enabled
- Provides more flexibility in data insertion scenarios
- Related issue: #44424
Enhancements
Performance Improvements
Receiver Parse Result Cache (#44166)
- Added receiver parse result cache for improved performance
- Fixes nil IDs unmarshal panicking (#42895)
- Reduces redundant parsing overhead
Bug Fixes
Dynamic Column Handling (#44626)
- Fixed row-to-column input handling for dynamic columns
- Resolves data conversion issues
- Related issue: #44161
Dependency Updates
Package Version Updates
- Bumped pkg dependency version to v2.6.3 (#44712)
- Bumped milvus & proto version to v2.6.3 (#44633)
- Bumped milvus & proto version to v2.6.2 (#44427)
- Bumped milvus & proto version to v2.6.1 (#44133)
- Bumped go version to 1.24.6 (#44763)
Breaking Changes
None
Bug Fixes
- #44626: Fixed dynamic column handling when converting row-based input to column format
- #44166: Fixed nil IDs unmarshal panicking issue
Improvements
- Enhanced data type support with Geospatial types
- Better performance with parse result caching
- More flexible data insertion with AutoID support
- Improved CDC capabilities for cross-cluster replication
- Better compaction control with manual L0 compaction
Installation
Using Go Modules
go get -u github.com/milvus-io/milvus/client/v2@v2.6.1Import in Your Code
import (
"github.com/milvus-io/milvus/client/v2/milvusclient"
)Compatibility
- Compatible with Milvus v2.6.x
- Requires Go 1.24.6 or higher
- Proto version: v2.6.3
- Pkg version: v2.6.3
Contributors
Special thanks to all contributors who made this release possible:
Full Changelog
For a complete list of changes, see: client/v2.6.0...client/v2.6.1
Resources
Upgrade Guide
To upgrade from v2.6.0 to v2.6.1:
-
Update your go.mod file:
go get -u github.com/milvus-io/milvus/client/v2@v2.6.1
-
Run go mod tidy:
go mod tidy
-
Review your code for any usage of dynamic columns to ensure compatibility with the fix in #44626
-
Test your application thoroughly, especially if using:
- Geospatial data types (new feature)
- CDC functionality (new feature)
- AutoID with primary key insertion (new feature)
- FlushAll with collection-specific targets (enhanced)
Known Issues
None reported for this release.
Next Steps
- Review the migration guide if upgrading from older versions
- Check out the example code for new features
- Join the Milvus community for support and discussions
milvus-2.6.3
v2.6.3
Release date: October 11, 2025
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.3 | 2.6.2 | 2.6.1 | 2.6.5 | 2.6.1 |
We are pleased to announce the release of Milvus 2.6.3, which introduces a variety of exciting new features, improvements, and critical bug fixes. This version enhances system performance, expands functionality, and fixes key issues, providing a more stable experience for all users. Below are the highlights of this release:
New Features
- Primary Key with AutoID Enabled: Users can now write the primary key field when
autoidis enabled. (#44424 #44530) - Manual Compaction for L0 Segments: Added support for manually compacting L0 segments. (#44440)
- Cluster ID Encoding in AutoID: Auto-generated IDs will now include the cluster ID. (#44471)
- gRPC Tokenizer Support: Integration of gRPC tokenizer for enhanced query flexibility. (#41994)
Improvements
- Refined the balance checker by implementing a priority queue, improving task distribution. (#43992)
- Preloaded BM25 stats for sealed segments and optimized serialization. (#44279)
- Nullable fields can now be used as input for BM25 functions. (#44586)
- Added support for Azure Blob Storage in Woodpecker. (#44592)
- Purged small files right after Woodpecker segment compaction. (#44473)
- Enabled random score functionality for boosting queries. (#44214)
- New configuration options for the
int8vector type in autoindexing. (#44554) - Added parameter items to control hybrid search requery policy. (#44466)
- Added support for controlling the insertion of function output fields. (#44162)
- The decay function now supports configurable score merging for better performance. (#44066)
- Improved the performance of binary search on strings. (#44469)
- Introduced support for sparse filters in queries. (#44347)
- Various updates to enhance tiered index functionality. (#44433)
- Added storage resource usage tracking for scalar and vector searches. (#44414 #44308)
- Add storage usage for delete/upsert/restful (#44512)
- Enabled granular flush targets for
flushalloperations. (#44234) - Datanodes will now use a non-singleton file system for better resource management. (#44418)
- Added configuration options for batch processing in metadata. (#44645)
- Error messages now include the database name for better clarity. (#44618)
- Moved tracer test to the
milvus-commonrepository for better modularization. (#44605) - Moved C API unit test files aside to
srcdirectory for better organization. (#44458) - Go SDK now allows users to insert primary key data if
autoidis enabled. (#44561)
Bug fixes
- Resolved CVE-2020-25576 and WS-2023-0223 vulnerabilities. (#44163)
- Fixed an issue where logical resources were used for metrics in the quota center on streaming nodes. (#44613)
- Set
mixcoordinactivatefuncwhen enabling standby. (#44621) - Removed redundant initialization of storage V2 components. #44597)
- Fixed compaction task blocking due to executor loop exit. (#44543)
- Refunded loaded resource usage in the
insert/deleterecorddestructor. (#44555) - Fixed an issue where the replicator could not stop and enhanced the replicate config validator. (#44531)
- Set
mmap_file_raii_tonullptrwhen mmap is disabled. (#44516) - Made
diskfilemanageruse the file system from the context. (#44535) - Forced virtual host for OSS and COS in storage V2. (#44484)
- Set
report_valuedefault value whenextrainfois notnilfor compatibility. (#44529) - Cleaned up collection metrics after dropping collections in rootcoord. (#44511)
- Fixed segment loading failure due to duplicate field
mmap.enableproperties. (#44465) - Fixed load config parsing errors for dynamic replicas. (#44430)
- Handled row-to-column input for dynamic columns in Go SDK. (#44626)
milvus-2.5.18
v2.5.18
Release date: September 19, 2025
| Milvus version | Python SDK version | Node.js SDK version | Java SDK version |
|---|---|---|---|
| 2.5.18 | 2.5.16 | 2.5.12 | 2.5.13 |
We were excited to announce Milvus 2.5.18! This release delivered critical performance enhancements and stability improvements. We strongly encouraged all users to upgrade to benefit from these optimizations.
Improvements
- Removed timeout for compaction task (#44278)
- Forbade panic when tantivy index path did not exist (#44136)
- Updated knowhere version (#44292)
- Added param to modify delete snapshot size (#44213)
- Added mutex and range check to prevent concurrent delete (#44202)
- Removed name check for alter index task (#44056)
- Returned collection metadata from cache (#43911)
- Supported expr result cache (#43882)
- Made build ratio of interim index configurable (#43938)
- Used function def determine field IsFunctionOutput only (#44009)
- Used rlock for list privilege groups (#44006)
- Added param item forcing all indices ready for segment (#44329)
Bug fixes
- Fixed a bug that caused incorrect metrics for compaction tasks (#44280)
- Resolved an issue with invalid pre-allocated segment IDs during compaction (#44351)
- Corrected a bug where GetCompactionTo incorrectly returned empty results during clustering compaction (#44271)
- Added a nil check for arraydata to prevent a system panic (#44333)
- Implemented a UTF-8 check in BM25FunctionRunner to handle non-UTF-8 strings (#44221)
- Expanded the lock range for dump_snapshot to prevent coredumps during delete operations (#44131)
- Invalidated the proxy cache for alias creation to ensure updates were immediately reflected (#44073)
milvus-2.6.2
v2.6.2
Release date: September 19, 2025
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.2 | 2.6.2 | 2.6.0 | 2.6.4 | 2.6.1 |
We’re excited to announce the release of Milvus 2.6.2! This update introduces powerful new features, significant performance enhancements, and critical fixes that make the system more stable and production-ready. Highlights include partial field updates with upsert, JSON Shredding to accelerate dynamic field filtering, NGram indexing for faster LIKE queries, and more flexible schema evolution on existing collections. Built on community feedback, this release delivers a stronger foundation for real-world deployments, and we encourage all users to upgrade to take advantage of these improvements.
Features
- Added support for JSON Shredding to accelerate dynamic field filtering. For details, refer to JSON Shredding.
- Added support for NGRAM Index to accelerate like operation. For details, refer to NGRAM.
- Added support for partial field updates with upsert API. For details, refer to Upsert Entities.
- Added support for Boost Function. For details, refer to Boost Ranker.
- Added support for group by JSON fields and dynamic fields (#43203)
- Added support for enabling dynamic schema on existing collections (#44151)
- Added support for dropping indexes without releasing collections (#42941)
Improvements
- [StorageV2] Changed log file size to compressed size (#44402)
- [StorageV2] Added child fields in load info (#44384)
- [StorageV2] Added support for including partition and clustering keys in system group (#44372)
- Removed timeout for compaction tasks (#44277)
- [StorageV2] Enabled build with Azure (#44177)
- [StorageV2] Utilized group info for estimating logic usage (#44356)
- [StorageV2] Utilized group split info to estimate usage (#44338)
- [StorageV2] Saved column group results in compaction (#44327)
- [StorageV2] Added configurations for size-based split policy (#44301)
- [StorageV2] Added support for schema-based and size-based split policy (#44282)
- [StorageV2] Added configurable split policy (#44258)
- [CachingLayer] Added more metrics and configurations (#44276)
- Added support for waiting for all indices to be ready before loading segments (#44313)
- Added internal core latency metric for rescore node (#44010)
- Optimized access log format when printing KV params (#43742)
- Added configuration to modify dump snapshot batch size (#44215)
- Reduced compaction task cleanup interval (#44207)
- Enhanced merge sort to support multiple fields (#44191)(#43994)
- Added load resource estimation for tiered index (#44171)
- Added autoindex config for deduplication case (#44186)
- Added configuration to allow custom characters in names (#44063)
- Added support for cchannel for streaming service (#44143)
- Added mutex and range check to guard concurrent deletions (#44128)
Bug fixes
- Aligned the behavior of exists expressions between brute force and index (#44030)
- Fixed error on renaming to a dropped collection (#44436)
- [StorageV2] Checked child fields length (#44405)
- [StorageV2] Turned on Azure by default (#44377)
- Corrected upload path of L0 compactions under pooling datanodes (#44374)
- Disallowed renaming if database encryption is enabled (#44225)
- Disallowed deletion of dynamicfield.enable property (#44335)
- Marked tasks as failed when pre-allocated ID is invalid (#44350)
- Skipped MVCC checks on PK compare expressions (#44353)
- Fixed json_contains bug for stats (#44325)
- Added initialization filesystem check for query node and streaming node (#44360)
- Fixed empty compaction target when segment was garbage collected (#44270)
- Fixed race condition when initializing timestamp index (#44317)
- Checked if arraydata is nil to prevent panic (#44332)
- Fixed build JSON stats bug for nested objects (#44303)
- Avoided mmap rewrite by multiple JSON fields (#44299)
- Unified valid data formats (#44296)
- Hid credentials of embedding/reranking providers in web UI (#44275)
- Corrected statslog path under pooling datanodes (#44288)
- Corrected path of IDF oracle (#44266)
- Used recovery snapshot checkpoint if no vchannel is recovering (#44246)
- Limited column number in JSON stats (#44233)
- Made load resource count n-gram index (#44237)
- Deduced metric type from non-empty search results (#44222)
- Fixed multi-segment write only writing one segment (#44256)
- Fixed merge sort out of range (#44230)
- Added UTF-8 check before executing BM25 function (#44220)
- Retried old session if it exists (#44208)
- Added Kafka buffer size limit to prevent datanode OOM (#44106)
- Fixed panic by extending lock guarding range (#44130)
- Fixed growing segments not being flushed on schema change (#44412)
- [StorageV2] Handled IO errors (#44255)
- Prevented panic if Tantivy index path does not exist (#44135)
milvus-2.6.1
v2.6.1
Release date: September 3, 2025
| Milvus Version | Python SDK Version | Node.js SDK Version | Java SDK Version | Go SDK Version |
|---|---|---|---|---|
| 2.6.1 | 2.6.1 | 2.6.0 | 2.6.3 | 2.6.1 |
We are excited to announce the release of Milvus 2.6.1! This version builds upon the major architectural advancements of previous releases, delivering critical enhancements focused on production stability, performance, and operational robustness. This release addresses key community feedback and strengthens the system for large-scale deployments. We strongly encourage all users to upgrade to benefit from a more stable, performant, and reliable system.
Improvements
- Supports POSIX-compatible file systems for remote storage (#43944)
- Introduces model-based rerankers (#43270)
- Optimizes the performance of comparison expressions on primary key fields (#43154)
- Collects doc_id from posting list directly to accelerate text match (#43899)
- Optimizes query performance by converting multiple != conditions into a single NOT IN clause (#43690)
- Enhances resource management for the caching layer during segment loading (#43846)
- Improves memory estimation for interim indexes during data loading (#44104)
- Makes the build ratio for interim indexes configurable (#43939)
- Adds a configurable write rate limit to the disk writer (#43912)
- SegCore parameters can now be updated dynamically without restarting the Milvus service (#43231)
- Adds unified gRPC latency metrics for better observability (#44089)
- Includes client request timestamps in gRPC headers to simplify debugging (#44059)
- Supports trace log level for segcore (#44003)
- Adds a configurable switch to adjust consistency guarantees for higher availability (#43874)
- Implements a robust rewatch mechanism to handle etcd connection failures (#43829)
- Improves the internal node health check logic (#43768)
- Optimizes metadata access when listing collections (#43902)
- Upgrades the Pulsar client to v0.15.1 official version and adds more logging (#43913)
- Upgrades aws-sdk from 1.9.234 to 1.11.352 (#43916)
- Supports dynamic interval updates for ticker components (#43865)
- Improves auto-detection of ARM SVE instruction sets for bitset operations (#43833)
- Improves the error message when a text or phrase match fails (#43366)
- Improves the error message for vector dimension mismatches (#43835)
- Improves error reporting for append timeouts when the object store is unavailable (#43926)
Bug fixes
- Fixes a potential Out-Of-Memory (OOM) issue during Parquet file imports (#43756)
- Fixes an issue where standby nodes could not recover if their lease expired (#44112)
- Handles compaction retry state correctly (#44119)
- Fixes a potential deadlock between continuous read requests and index loading that could prevent index loading (#43937)
- Fixes a bug that could cause data deletions to fail in high-concurrency scenarios (#43831)
- Fixes a potential race condition when loading text and JSON indexes (#43811)
- Fixes a node status inconsistency that could occur after a QueryCoord restart (#43941)
- Ensures that a "dirty" QueryNode is properly cleaned up after a restart (#43909)
- Fixes an issue where the retry state was not handled correctly for requests with non-empty payloads (#44068)
- Fixes an issue where the bulk writer v2 did not use the correct bucket name (#44083)
- Enhances security by hiding sensitive items from the RESTful get_configs endpoint (#44057)
- Ensures that object uploads for woodpecker are idempotent during timeout retries (#43947)
- Disallows importing null elements in array fields from Parquet files (#43964)
- Fixes a bug where the proxy cache was not invalidated after creating a collection alias (#43854)
- Improves the internal service discovery mechanism for streaming nodes (#44033)
- Fixes resource group logic to correctly filter streaming nodes (#43984)
- Adds the databaseName label to metrics to prevent naming conflicts in multi-database environments (#43808)
- Fixes a logic error in internal task state handling (#43777)
- Optimizes the initialization timing of the internal metrics to avoid potential panic (#43773)
- Fixes a rare potential crash in the internal HTTP server (#43799)
client/v2.6.0
What's Changed
- [enhance: Support run analyzer by collection field #42642 @aoiasd
- enhance: Return SchemaMismatch error to retry #42950 @congqixia
- fix: Handle insufficient topks in search result #43126 @congqixia
- fix: Slice valid data parsing nullable data #43243 @congqixia
- test: Use strong consistency level for hybrid search cases #43536 @congqixia
- feat: Support search iterator v2 #43612 @congqixia
- enhance: Support limit for search iterator #43732 @congqixia
- enhance: Add param static check for search iterator #43774 @congqixia
- test: new search iterator go client cases #43771 @ThreadDao
- enhance: Support function reranker #43845 @congqixia
- test:add text embedding function testcases in go client #43875 @zhuwenxing
- enhance: Support IvfRabitQ & MinHashLSH index #43975 @congqixia
- enhance: Pass client request time in grpc metadat #44059 @congqixia
Full Changelog: client/v2.6.0-rc.1...client/v2.6.0
milvus-2.5.17
v2.5.17
Release date: August 21, 2025
| Milvus version | Python SDK version | Node.js SDK version | Java SDK version |
|---|---|---|---|
| 2.5.17 | 2.5.14 | 2.5.12 | 2.5.11 |
We're excited to announce Milvus 2.5.17! This release delivers critical performance enhancements and stability improvements. We strongly encourage all users to upgrade to benefit from these optimizations.
Improvements
- Enabled ARM SVE acceleration for bitset operations (#43928)
- Reduced frequent etcd calls in ShowCollections and DescribeCollections operations (#43903)
- Added write rate limiting for disk file writer (#43856)
- Supported skipping TSafe checks for better performance in specific scenarios (#43886)
- Adjusted import task concurrency based on CPU count (#43817)
- Refined error messages for better troubleshooting (#43860, #43836)
- Reduced buffer size to prevent OOM issues during import (#43757)
- Added disk file writer with direct I/O support (#43692)
Bug fixes
- Fixed L0 segment loading delegator selection in QueryCoord (#43795)
- Fixed incorrect null offset calculation for JSON path index (#43823)
- Added segment lock for LoadTextIndex and LoadJsonKeyIndex operations (#43815)
- Fixed delete consumer concurrency read-write bug (#43855)
- Used proto.Equal for accurate field default value comparison (#43832)
client/v2.5.6
What's Changed
- Implement
SearchIteratorV2for milvusclient @congqixia - Add basic test cases for search iterator @ThreadDao
Full Changelog: client/v2.5.5...client/v2.5.6