Skip to content

Releases: milvus-io/milvus

milvus-2.5.13

09 Jun 09:39
3915eca
Compare
Choose a tag to compare

v2.5.13

Release date: June 10, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.13 2.5.11 2.5.10 2.5.10

We're excited to announce Milvus 2.5.13! This version enhances your experience with new features, such as the ability to drop field properties and use a cast function for JSON indexes. 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.13 and explore these latest updates!

Features

  • Added support for dropping properties from a field (#41954).
  • Added a cast function for use with JSON indexes (#42504).

Improvements

  • Increased the default import buffer size (#42542).
  • Accelerated the dispatcher building process (#42544).
  • Removed balance constraints between channel and segment tasks (#42410).
  • Set the CAGRA GPU image as the default (#42193).
  • The DescribeIndex RESTful API now supports returning index parameters (#42080).
  • Enabled running an analyzer by a collection's field to avoid frequent analyzer creation and destruction (#42119).
  • Added support for balancing multiple collections in a single trigger (#42134).
  • Now considers nq (number of queries) when identifying slow queries (#42125).
  • The server side now automatically fills absent nullable fields (#42120).
  • Added support for filtering out expired data using TTL (#41960, #42121, #42103).
  • Refined expiring compaction to reclaim space from a small number of older deletions (#42052).
  • Access logs now support fetching hybrid search expressions and fields (#41921).
  • Added explicit move semantics to the get_batch_view interface (#42402).

Bug fixes

  • Fixed a pipeline/delegator leak (#42583).
  • Fixed the delegator selection logic when releasing a segment to avoid a potential MixCoord panic (#42572).
  • Fixed a bug that could cause data write corruption during validation (#42555).
  • Added a check to ensure the cast type is an array for JSON contains expressions (#42185).
  • Fixed an issue with duplicate auto-IDs between import and insert operations (#42520).
  • Ensured importing segments stats tasks are triggered only by the import_checker (#42487).
  • Fixed a bug with is null for the Marisa index (#42421).
  • Ensured stats tasks are only triggered for flushed segments (#42425).
  • Reset compaction status when segment stats are finished (#42005).
  • Updated the Tantivy version to fix a stemmer panic (#42172).
  • Fixed an issue where vector output fields could not be retrieved when using a new interim index (#42183).
  • Avoided relying on Knowhere for thread control when calling the Knowhere iterator (#42133).
  • Fixed an issue where segments could be released prematurely during a balance channel operation (#42043).
  • The DescribeIndex RESTful interface now includes a timestamp (#42105).
  • Used locking to ensure the atomicity of dropping segment indexes (#42076).
  • Fixed a proxy panic in the shard client manager (#42026).
  • Fixed the import slot assignment logic (#41982).
  • Fixed a bug where the time point for force expiry compaction failed to reset (#42000).

milvus-2.5.12

19 May 08:58
043e333
Compare
Choose a tag to compare

v2.5.12

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.12 2.5.10 2.5.9 2.5.9

We're pleased to bring you Milvus 2.5.12! This release introduces new capabilities such as JSON index support for contains expressions, along with several improvements including updated DescribeCollection API responses and stricter data expiry compaction. This version also incorporates important dependency updates to fix CVEs and numerous bug fixes to enhance stability and performance.
We encourage you to upgrade to Milvus 2.5.12 to benefit from these latest enhancements and fixes!

Features

  • Added JSON index support for JSON contains expr (#41658).

Improvements

  • The DescribeCollection API now includes the update timestamp in its results (#41600).
  • The DescribeIndex interface now outputs index version information (#41841).
  • Added support for stricter expiry compaction to clean deleted data without necessarily waiting for a large number of deletions (#41856).
  • Bumped dependency versions to address CVEs (#41590, #41878, #41742, #41697).
  • Added authorization checks for DescribeCollection and DescribeDatabase tasks (#41799).
  • The RESTful API now supports consistency levels for query/get operations (#41830).
  • Added support for altering collection descriptions (#41547).
  • CDC now supports synchronizing multiple DDL APIs (#41594, #41679).
  • Added a timeout for message reception in MQMsgStream (#41603).
  • Disk quota checks are now skipped for L0 imports (#41572).
  • Added parameters to ignore configuration type exceptions (#41773).
  • Set worker totalSlot in standalone mode to half of that in cluster mode (#41731).

Bug fixes

  • Fixed a goroutine leak in ants.pool (#41893).
  • Fixed an issue where the analyzer name was not set in hybrid search sub-requests (#41897).
  • Fixed a double assignment issue in ChannelManager (#41877).
  • Fixed an issue where log level settings were ineffective in ThreadWatcher (#41887).
  • Prevented index creation for unsorted importing segments when statistics are enabled (#41865).
  • Fixed a goroutine leak in the import reader (#41870).
  • Fixed an analyzer memory leak caused by the function runner not being closed (#41840).
  • Fixed an issue that counts are collected grouped by partition instead of collection (#41789).
  • Fixed an issue with unexpected passwords for the root user (#41818).
  • Prevented crashes when contains_all or contains_any is used with an empty array (#41756).
  • Fixed issues of compilation on Windows (#41617).
  • Disabled block and mutex profiling on ARM architecture to prevent SIGSEGV errors (#41823).
  • Fixed a no candidate segments error for small import tasks (#41772).
  • Ensured fallback to MixCoord session when upgrading to MixCoord (#41773).
  • GetValueFromConfig now returns nullopt instead of throwing an exception (#41711).
  • Added an exclusive lock mutex in DropSegmentsOfPartition to avoid potential crashes with concurrent DDL upon partitions (#41619).

client/v2.5.3

30 Apr 07:18
ecf3841
Compare
Choose a tag to compare

What's Changed

PR: #41631

  • Resolve the issue that row-based insertion could not work with collection function output fields
  • Add sparse & compact format nullable column
  • Support insert normal column into nullable field as all valid rows

Full Changelog: client/v2.5.2...client/v2.5.3

milvus-2.5.11

28 Apr 09:16
69a80b9
Compare
Choose a tag to compare

v2.5.11

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.11 2.5.8 2.5.8 2.5.8

We're excited to announce the release of Milvus 2.5.11! This version introduces powerful new features like the multi-analyzer capability and expanded tokenizer support (Jieba, Lindera, ICU, Language Identifier). We've also made several improvements, including dynamic segment loading thread pool updates and optimized delete filtering during binlog imports. Key bug fixes address potential segment drop issues, BM25 search failures, and JSON stats filtering errors.

We encourage you to upgrade to 2.5.11 to take advantage of these enhancements and fixes!

Features

  • Added the ability to configure multiple analyzers (tokenizers) and select the appropriate one based on the instruction of the input data (#41444).
  • Enhanced the BM25 Analyzer functionality (#41456).
    • Introduced a run_analyzer API for dry runs to help analyze tokenization results. For more information, refer to Analyzer Overview.
    • Tokenizers
      • Added support for customizing Jieba tokenizer parameters.
      • Added support for the Lindera tokenizer. For more information, refer to Lindera.
      • Added support for the ICU tokenizer. For more information, refer to ICU.
      • Added a Language Identifier tokenizer for language detection.
    • Filters
      • Expanded language support for the built-in stop word filter. For more information, refer to Stop.
      • Added a remove_punct filter to remove punctuation marks. For more information, refer to Remove Punct.
      • Added a regex filter for pattern-based text filtering. For more information, refer to Regex.
  • Added support for modifying the maximum capacity of array fields (#41406).
  • Added support for binary range expressions in JSON path indexes (#41317).
  • Added support for infix and suffix match types in JSON stats (#41388).

Improvements

  • Enabled dynamic updates to the size of the Segment loading thread pool (#41549).
  • Accelerated delete filtering during binlog import (#41552).
  • Added monitoring parameters for the expression filter ratio (#41403).
  • Added a configuration option to force rebuilding indexes to the latest version (#41432).
  • Improved the error log message for the list policy (#41368).
  • Adapted handling for hyphens in gRPC metadata headers (#41372).
  • Upgraded Go version to 1.21.4 to address CVEs (#41522, #41319). (Note: Original text mentioned "2.14", assumed typo corrected to a plausible recent version 1.21.4).

Bug fixes

  • Fixed an issue where segments might not be correctly dropped when dropping a partition (#41543).
  • Fixed bulk insert to use the function runner's input field list instead of the schema's field list (#41561).
  • Fixed BM25 search failures occurring when avgdl (average document length) is NaN (#41503).
  • Corrected inaccurate labels in QueryNode metrics (#41422).
  • Fixed an issue where JSON stats index creation could fail if the data contained an empty map (#41506).
  • Fixed the AlterCollection API to correctly save the modification timestamp (#41469).
  • Fixed an intermittent filtering error in JSON stats under ConjunctExpr and improved the task slot calculation logic to accelerate JSON stats building (#41458).
  • Fixed an IDF oracle leak in BM25 statistics calculation (#41426).
  • Ensured pre-created topics are checked first during shard number validation (#41421).
  • Fixed an erroneous deadlock report occurring in unit tests (#41377).

milvus-2.5.10

18 Apr 06:10
5a8c98a
Compare
Choose a tag to compare

v2.5.10

Release date: April 21, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.10 2.5.6 2.5.8 2.5.7

Milvus 2.5.10 delivers improved search and load performance, enhanced metrics reporting, and expanded SVE support for accelerated metric computation. This release also includes multiple bug fixes that boost stability and correctness. We encourage you to upgrade or give it a try—your feedback is invaluable in helping us make Milvus even better!

Improvements

  • Ignore reporting index metrics for non‑existent indexes (#41296)
  • Use scan mode for LIKE even when an inverted index exists (#41309)
  • Optimize performance for LIKE expressions (#41222)
  • Optimize index format for improved load performance (#41041)
  • RESTful: make the default timeout configurable (#41225)
  • Enable SVE support for L2 metric computation in FP16 / NY functions (knowhere #1134)

Bug fixes

  • Fix JSON index not working for string filters (#41383)
  • Skip dimension check for non‑vector fields in pre‑check (#41329)
  • Alter collection now updates the schema correctly (#41308)
  • Update knowhere version to fix macOS build (#41315)
  • Prevent panic when listing indexes before segment index initialization completes (#41299)
  • Resolve performance regression by changing a log level (#41269)
  • Close client before removing worker client (#41254)

client/v2.5.2

11 Apr 05:14
89a1159
Compare
Choose a tag to compare

What's Changed

  • enhance: [2.5][GoSDK] Add README and examples for milvusclient by @congqixia in #40747
  • enhance: [2.5][GoSDK] Support JSON Path index (#40754) by @congqixia in #40791
  • test: [GoSDK][2.5] test: Cherry-pick gosdk test commits from master branch by @ThreadDao in #40778
  • fix: [2.5][GoSDK] Set nullable according to fieldSchema for RowBased insert (#40928) by @congqixia in #40962
  • enhance: [2.5][GoSDK] Cherry-pick commits and bump version to 2.5.2 by @congqixia in #41235

Full Changelog: client/v2.5.1...client/v2.5.2

milvus-2.5.9

11 Apr 12:52
de6687e
Compare
Choose a tag to compare

v2.5.9

Release date: April 11, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.9 2.5.6 2.5.7 2.5.7

We’re excited to announce Milvus 2.5.9, bringing improved performance for JSON key statistics, enhanced indexing capabilities, and several critical bug fixes that bolster stability and data handling. We encourage you to upgrade or give this version a try, and as always, your feedback is greatly appreciated as we continue to refine Milvus.

Improvements

  • Support skipping score normalization for the weighted re-ranker (#40905)
  • Improve the performance of JSON key stats building by adding documents in batches (#40898)
  • Use int32 when creating array indexes for int8/int16 element types (#41186)
  • Align brute-force search results with JSON index behavior for the exists expression (#41056)

Bug fixes

  • Fixed an issue causing traceID confusion if the client sent a traceID (#41149)
  • Fixed a potential crash due to incorrect usage of noexcept, leading to IO failures (#41221)
  • Resolved an infinite normal balance loop triggered after balance suspension (#41196)
  • Show collections now supports objects granted to custom privilege groups (#41204)
  • Fixed a failure to retrieve replicate channel positions (#41189)
  • Fixed a potential thread leak caused by RESTful timeouts (#41184)
  • Added a clear bitmap for batch skip mode (#41165)
  • Fixed an issue where removing an index type failed in local-mode remote storage (#41163)
  • Use element_type for array isNull operators (#41158)
  • Removed metrics reset to ensure accurate reporting (#41081)
  • Fixed a bug preventing null data from being filtered by null expressions (#41135)
  • Ignored growing segments with no start position for seal policy (#41131)
  • Avoided updating original search/query requests during retries (#41127)
  • Fixed a segmentation fault if LoadArrowReaderFromRemote runs in an exception path (#41071)
  • Addressed manual balance and balance check issues (#41038)
  • Validated schema is not nil for JSON stats with lazy DescribeCollection (#41068)
  • Fixed a cursor movement bug when comparing two columns (#41054)
  • Resolved a crash when inserting both null and non-null arrays with growing mmap open (#41052)
  • Fixed an arm64 compilation issue (#41058)
  • Added a bypass thread pool mode to avoid blocking insert/load operations by growing indexes (#41013)
  • Fixed JSON format errors (#41031)
  • Fixed a 404 error in WebUI when http.enablepprof is false (#41007)

milvus-2.5.8

01 Apr 09:24
e0f274a
Compare
Choose a tag to compare

v2.5.8

Release date: April 1, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.8 2.5.6 2.5.7 2.5.6

We’re excited to announce the release of Milvus 2.5.8, featuring enhancements to JSON expressions, UTF-8 validation, memory usage, and balancing logic. This version also includes multiple important bug fixes to improve concurrency and data handling. We encourage you to upgrade or give it a try, and as always, your feedback helps us continually refine Milvus!

Improvements

  • Support JSON null/exists expressions (#41002)
  • Balance the collection with the largest row count first (#40958)
  • Support parsing sparse vectors from Parquet structs in bulk inserts (#40874)
  • Support UTF-8 string validation during import (#40746)
  • Add UTF-8 validation for all VARCHAR fields (#40993)
  • Avoid re-query if hybrid search only requests the PK as output field (#40906)
  • Refine array views to optimize memory usage (#40206)
  • Add a trigger interval configuration for auto-balancing (#39918)
  • Convert multiple OR expressions to IN expression (#40751)
  • Support detailed manual compaction criteria (#40924)
  • Retain raw tokens for audit logging (#40867)
  • Optimize DataCoord meta mutex usage (#40753)
  • Introduce batch subscriptions in MsgDispatcher (#40596)

Bug fixes

  • Fixed a crash involving nullable input and growing mmap data types (#40980)
  • Fixed potential data loss in delete operations caused by duplicate binlog IDs (#40985), (#40976)
  • Added field index locks for GetSegmentsIndexStates to avoid potential panic when insertion while creating collection (#40969)
  • Fixed concurrency issues in Rocksmq consumer registration (#40885)
  • Retrieve all child delta logs for segment loading (#40957)
  • Fixed wrong results caused by using JSON index when iterative_filter is specified (#40946)
  • Ensured higher priority for the exists operation (#40865)
  • Corrected WithGroupSize while reducing (#40920)
  • Increased the number of slots proportionally as segment size grows (#40862)
  • Set task queue time before enqueue (#40853)
  • Fixed channel imbalance on DataNodes (#40854)
  • Set correct default configurations for task slots (#40821)
  • Go SDK: Set nullable flags according to FieldSchema for row-based insert (#40962)

milvus-2.5.7

23 Mar 10:31
31f9e3c
Compare
Choose a tag to compare

v2.5.7

Release date: March 21, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.7 2.5.6 2.5.6 2.5.6

We’re excited to announce the release of Milvus 2.5.7, highlighted by the newly introduced JSON Path Index feature. This allows you to build inverted indexes on dynamic or JSON columns to significantly improve query performance. Alongside this new functionality, we've made numerous enhancements and bug fixes for better reliability, more refined error handling, and improved usability. We encourage you to upgrade or try it out, and as always, your feedback is greatly appreciated as we continue to improve Milvus!

Features

  • JSON Path Index: To address user needs for dynamic schemas, Milvus 2.5.7 introduces the ability to build indexes on dynamic columns and JSON columns. With this feature, you can create inverted indexes for specific dynamic columns or JSON paths, effectively bypassing the slower JSON load process and greatly enhancing query performance. For more information, refer to JSON Field.

Improvements

  • Reorder sub-expressions for conjunct expressions (#40186)
  • Add more config options for interimindex to support refined modes (#40429)
  • Use correct counter metrics for overall WA calculations (#40679)
  • Make the segment prune config refreshable (#40632)
  • Add a channel seal policy based on blocking L0 (#40535)
  • Refine task metadata with key-level locking (#40353)
  • Remove unnecessary collection and partition labels from metrics (#40593)
  • Improve import error messages (#40597)
  • Avoid converting body byte slices to strings in httpserver (#40414)
  • Log the start position of delete messages (#40678)
  • Support retrieving segment binlogs with the new GetSegmentsInfo interface (#40466)

Bug fixes

  • Use newInsertDataWithFunctionOutputField when importing binlog files (#40742)
  • Fixed an issue where mmap properties failed to apply when creating a collection (#40515)
  • Do not delete the centroids file when sampling fails; instead, wait for GC (#40702)
  • Fixed message loss issues during seek (#40736)
  • Removed lag targets after the main dispatcher (#40717)
  • Added clear bitmap input for every batch loop (#40722)
  • Protected GetSegmentIndexes with an RLock (#40720)
  • Avoided segmentation faults caused by retrieving empty vector datasets (#40546)
  • Fixed JSON index “not-equal” filter (#40648)
  • Fixed null offset loading in the inverted index (#40524)
  • Fixed the garbage cleanup logic of jsonKey stats and improved the JSON key stats filter (#40039)
  • Caught invalid JSON pointer errors (#40626)
  • RBAC star privilege now returns empty when listing policies (#40557)
  • Avoided panic when a field does not exist in the schema in QueryNode (#40542)
  • Fixed a reference collection issue for search/query (#40550)
  • Handled empty rows for sparse vectors (#40586)
  • Added a duplicated type/index parameter check when creating collections (#40465)
  • Moved metaHeader to the client to avoid data races (#40444)

milvus-2.5.6

10 Mar 03:23
ed71932
Compare
Choose a tag to compare

v2.5.6

Release date: March 10, 2025

Milvus version Python SDK version Node.js SDK version Java SDK version
2.5.6 2.5.5 2.5.5 2.5.5

We’re excited to announce the release of Milvus 2.5.6, featuring valuable enhancements to toolchains, logging, metrics, and array handling, as well as multiple bug fixes for improved reliability and performance. This update includes refined concurrency handling, more robust compaction tasks, and other key improvements. We encourage you to upgrade or try it out, and as always, we welcome your feedback to help us continuously improve Milvus!

Improvements

  • Upgrade the Go toolchain to 1.22.7 (#40399)
  • Upgrade Rust version to 1.83 (#40317)
  • Bump Etcd version to 3.5.18 (#40230)
  • Only check element type for non-null arrays (#40447)
  • Remove debug logs in the resource group handler (v2) (#40393)
  • Improve logging for the gRPC resolver (#40338)
  • Add more metrics for asynchronous CGO components (#40232)
  • Clean the shard location cache after a collection is released (#40228)

Bug fixes

  • Fixed array corruption caused by ignoring validity (#40433)
  • Fixed an issue where null expressions did not work for JSON fields (#40457)
  • Fixed an issue that stored the wrong offset when building Tantivy with a nullable field (#40453)
  • Skipped executing stats for zero segments (#40449)
  • Corrected memory size estimation for arrays (#40377)
  • Passed a knapsack pointer to avoid multiple compactions (#40401)
  • Fixed a crash issue with bulk insert (#40304)
  • Prevented message stream leaks by properly terminating the main dispatcher (#40351)
  • Fixed concurrency issues for null offsets (#40363), (#40365)
  • Fixed parsing of the import end ts (#40333)
  • Improved error handling and unit tests for the InitMetaCache function (#40324)
  • Added a duplicate parameter check for CreateIndex (#40330)
  • Resolved an issue preventing compaction tasks when size exceeded the max limit (#40350)
  • Fixed duplicate consumption from the stream for invisible segments (#40318)
  • Changed the CMake variable to switch to knowhere-cuvs (#40289)
  • Fixed an issue where dropping DB properties via RESTful failed (#40260)
  • Used a different message type for the OperatePrivilegeV2 API (#40193)
  • Fixed a data race in the task delta cache (#40262)
  • Resolved a task delta cache leak caused by duplicate task IDs (#40184)