Skip to content

Releases: milvus-io/milvus

milvus-2.5.18

22 Sep 01:07
1b0bf82
Compare
Choose a tag to compare

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

19 Sep 02:04
d1b40b7
Compare
Choose a tag to compare

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

01 Sep 06:05
4376876
Compare
Choose a tag to compare

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

27 Aug 07:26
d3fa305
Compare
Choose a tag to compare

What's Changed

Full Changelog: client/v2.6.0-rc.1...client/v2.6.0

milvus-2.5.17

21 Aug 10:39
5903f04
Compare
Choose a tag to compare

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

11 Aug 06:32
3baddd3
Compare
Choose a tag to compare

What's Changed

  • Implement SearchIteratorV2 for milvusclient @congqixia
  • Add basic test cases for search iterator @ThreadDao

Full Changelog: client/v2.5.5...client/v2.5.6

milvus-2.6.0

05 Aug 11:48
4def025
Compare
Choose a tag to compare

v2.6.0

Release date: August 6, 2025

Milvus Version Python SDK Version Node.js SDK Version Java SDK Version Go SDK Version
2.6.0 2.6.0 2.6.0 2.6.1 2.6.0

Milvus 2.6.0 is officially released! Building upon the architectural foundation laid in 2.6.0-rc1, this production-ready version addresses numerous stability and performance issues while introducing powerful new capabilities including Storage Format V2, advanced JSON processing, and enhanced search features. With extensive bug fixes and optimizations based on community feedback during the RC phase, Milvus 2.6.0 is ready for you to explore and adopt.

Direct upgrade from 2.6.0-RC1 versions is not supported due to architectural changes. For Older Milvus versions upgrade, Please follow our upgrade guide

What's new in 2.6.0 (since RC)

Optimized storage format v2

To address the challenges of mixed scalar and vector data storage, especially point lookups on unstructured data, Milvus 2.6 introduces Storage Format V2. This new adaptive columnar storage format adopts a "narrow column merging + wide column independence" layout strategy, fundamentally solving the performance bottlenecks when handling point lookups and small-batch retrievals in vector databases.

The new format now supports efficient random access without I/O amplification and achieves up to 100x performance gains compared to the vanilla Parquet format adopted previously, making it ideal for AI workloads requiring both analytical processing and precise vector retrieval. Additionally, it can reduce file count by up to 98% for typical workloads. Memory consumption for major compaction is reduced by 300%, and I/O operations are optimized by up to 80% for reads and more than 600% for writes.

JSON flat index (beta)

Milvus 2.6 introduces JSON Flat Index to handle highly dynamic JSON schemas. Unlike JSON Path Index which requires pre-declaring specific paths and their expected types, JSON Flat Index automatically discovers and indexes all nested structures under a given path. When indexing a JSON field, it recursively flattens the entire subtree, creating inverted index entries for every path-value pair it encounters, regardless of depth or type.
This automatic flattening makes JSON Flat Index ideal for evolving schemas where new fields appear without warning. For instance, if you index a "metadata" field, the system will automatically handle new nested fields like "metadata.version2.features.experimental" as they appear in incoming data, without requiring new index configuration.

Core 2.6.0 features recall

For detailed information about architecture changes and features introduced in 2.6.0-RC, see 2.6.0-rc1 Release Note.

Architecture simplification

  • Streaming Node (GA) - Centralized WAL management
  • Native WAL with Woodpecker - Removed Kafka/Pulsar dependency
  • Unified coordinators (MixCoord); Merged IndexNode and DataNode - Reduced component complexity

Search & analytics

  • RaBitQ 1-bit quantization with high recall
  • Phrase matching
  • MinHash LSH for deduplication
  • Time-aware ranking functions

Developer experience

  • Embedding functions for "data-in, data-out" workflow
  • Online schema evolution
  • INT8 vector support
  • Enhanced tokenizers for global language support
  • Cache layer with lazy loading - Process datasets larger than memory

milvus-2.5.16

05 Aug 11:45
51b3d24
Compare
Choose a tag to compare

v2.5.16

Release date: August 6, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.16 2.5.14 2.5.12 2.5.11

We're excited to announce Milvus 2.5.16! This version enhances your experience by fixing a series of functionality bugs and improving user experiences. It also delivers a range of general performance and stability enhancements, while resolving numerous bugs to ensure a more robust system. We encourage you to upgrade to 2.5.16 and explore these latest updates!

Improvements

  • Removed collection name validation from DescribeCollection (#43300).
  • Unlinked mmap file when chunk and index are destructed (#43546).
  • Used set element for string term type (#43393).
  • Upgraded Go version to 1.24.4 to fix CVEs (#43467).
  • Only downloaded necessary fields during clustering analyze phase (#43362).
  • Updated Lindera version (#43457).
  • Optimized channel node balancing for uneven QueryNode distribution (#43423).

Bug fixes

  • Fixed hybrid search to support offset param in RESTful API (#43721).
  • Fixed Jieba tokenizer panic when dict word was empty string (#43718).
  • Fixed span raw data retrieval for variable length data type (#43703).
  • Incremented offset for invalid data rows in JSON key stats inverted index (#43688).
  • Fixed load config changes failure after restart (#43555).
  • Fixed pk in [..] skip next batch when using multi-chunk segment (#43619).
  • Skipped loading non-existent L0 segments to prevent load blocking (#43576).
  • Cleaned privilege cache after loading policy in InitPolicyInfo (#43643).
  • Set status when error is not empty (#43404).
  • Returned ID by default (#43596).
  • Fixed string views retrieval failure due to chunk bound empty loop (#43482).
  • Ignored 2.6 proxy to avoid timetick lag (#43519).
  • Ensured task execution order by using a priority queue (#43272).
  • Refined judgement for batch views (#43479).

milvus-2.5.15

21 Jul 02:28
3a3b374
Compare
Choose a tag to compare

v2.5.15

Release date: July 23, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.15 2.5.14 2.5.12 2.5.11

We're excited to announce Milvus 2.5.15! This version enhances your experience by fixing a series of functionality bugs, including ones that may severely damage the metadata causing data loss when collection is renamed. It also delivers a range of general performance and stability enhancements, while resolving numerous bugs to ensure a more robust system. We encourage you to upgrade to 2.5.15, especially if you are currently on 2.5.14, and explore these latest updates!

Improvements

  • Updated Knowhere version to fix a sparse vector brute force bug (#43398).
  • Implemented meta saving with txn limits (#43287).
  • Applied load config changes after QueryCoord restart (#43236).
  • Refined variable-length-type memory usage (#43093).
  • Reordered RootCoord shutdown to be last in coordinator stop sequence (#43024).
  • Updated CMake version to 3.31.8 (#43004).

Bug fixes

  • Skipped remove operation if key exists in save set (#43426).
  • Fixed null bitmap offset alignment when loading multi-chunk data (#43411, #43342).
  • Updated Tantivy to fix directory removing race condition (#43401).
  • Fixed an issue by calling AlterCollection only when renaming collections (#43421).
  • Made MultiSaveAndRemove execute removal operations first (#43409).
  • Used disk segment max size for collections with both sparse and dense vectors (#43195).
  • Fixed text match bug by adapting to multi-chunk model (#43297).
  • Fixed incorrect bitset for division comparison when the right operand is negative (#43180).
  • Voided unnecessary copying when getting JSON chunks (#43183, #43202).
  • Prevented delegator from becoming unserviceable due to shard leader changes (#43309).
  • Fixed text match index and JSON key stats index leaks when segments are released (#43308).
  • Fixed RegeneratePartitionStats failure after restoring clustering compaction tasks (#43206).
  • Added error handling for invalid function parameters to prevent panics (#43190).
  • Removed space trimming logic when validating collection names (#43138).
  • Added field mmap property checks before applying collection-level settings (#43091).
  • Fixed index creation being blocked by failed sort stats (#43061).
  • Fixed exclude nodes clearing logic in load balancer retry mechanism (#43002).

client/v2.5.5

16 Jul 02:05
8ac3adc
Compare
Choose a tag to compare

What's Changed

  • Prevent client panicking when Milvus server return malformed search result by @congqixia
  • Fix a bug that when search nq > 1, client failed to parse nullable column by @congqixia

Full Changelog: client/v2.5.5...client/v2.5.4