🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 關於 Milvus

發佈筆記

瞭解 Milvus 的新功能!本頁總結了每個版本的新功能、改進、已知問題和錯誤修正。您可以在本節中找到 v2.5.0 以後每個版本的發行說明。我們建議您定期造訪此頁面以瞭解更新資訊。

v2.5.4

發行日期:2025 年 1 月 23 日

Milvus 版本Python SDK 版本Node.js SDK 版本Java SDK 版本
2.5.42.5.42.5.42.5.4

我們很高興地宣佈 Milvus 2.5.4 正式發行,它引進了關鍵的效能最佳化和新功能,例如 PartitionKey 隔離、Sparse Index with DAAT MaxScore,以及增強的鎖定機制。此版本的一大亮點是支援 10,000 個集合和 1 百萬個分割區,標誌著多租戶使用個案的一大里程碑。這個版本也解決了多個 Bug,提高了整體穩定性和可靠性,其中兩個關鍵 Bug 可能會導致資料遺失。我們鼓勵您升級或試用此最新版本,並期待您的意見協助我們持續改進 Milvus!

功能特色

改進

  • 在一個集群中支援 10K 集合和 100 萬個分割(#37630)
  • 緩存區段的 delta 資訊以加速查詢協調器(#39349)
  • 在集合層級同步讀取元資料,以加速故障復原(#38900)
  • 精煉查詢節點的鎖粒度(#39282),(#38907)
  • 使用 CStatus 來處理 NewCollection CGO 呼叫,以統一風格(#39303)
  • 如果沒有設定分區,跳過產生分區限制器(#38911)
  • 新增更多 RESTful API 支援(#38875)(#39425)
  • 移除查詢節點QueryNode)和資料節點(DataNode)中不必要的 Bloom 過濾器,以減少記憶體使用量(#38913)
  • 透過加速 QueryCoord 中的任務產生、排程和執行,加速資料載入(#38905)
  • 減少 DataCoord 中的鎖定,以加快載入和插入操作(#38904)
  • SearchResultQueryResults 中新增主字段名稱(#39222)
  • 使用 binlog 大小和索引大小作為磁碟配額節流標準(#38844)
  • 優化了全文檢索 knowhere/#1011 的記憶體使用量
  • 新增標量索引的版本控制(#39236)
  • 避免不必要的複製,改善從 RootCoord 取得集合資訊的速度(#38902)

重要錯誤修正

  • 修正索引主鍵搜尋失敗的問題(#39390)
  • 修正了重新啟動 MixCoord 並同時沖洗可能導致的資料遺失問題(#39422)
  • 修正了在 MixCoord 重新啟動後,由於 stats 任務和 L0 compaction 之間的不當並發而引發的刪除失敗問題(#39460)
  • 修正了從 2.4 升級到 2.5 時標量倒置索引的不兼容性(#39272)

錯誤修正

  • 修正了多列載入時粗鎖粒度導致的緩慢查詢問題(#39255)
  • 修正了使用別名可能導致迭代器遍歷錯誤資料庫的問題(#39248)
  • 修正了更改資料庫時資源組更新失敗的問題(#39356)
  • 修正了一個零星的問題,在釋放時,tantivy 索引無法刪除索引檔案(#39434)
  • 修正了因線程數過多而造成的索引緩慢問題(#39341)
  • 修正了在大量匯入時,無法跳過磁碟配額檢查的問題(#39319)
  • 透過限制並發量,解決了因太多訊息佇列消費者所造成的凍結問題(#38915)
  • 修正了在大規模壓縮期間,由於 MixCoord 重新啟動而導致的查詢超時問題(#38926)
  • 修正由於節點停機所造成的頻道不平衡問題(#39200)
  • 修正了可能導致頻道平衡卡住的問題。(#39160)
  • 修正了 RBAC 自訂群組權限等級檢查變得無效的問題(#39224)
  • 修正了擷取空索引中的行數失敗的問題(#39210)
  • 修正了小區段記憶體估算錯誤的問題(#38909)

v2.5.3

發行日期:2025 年 1 月 13 日

Milvus 版本Python SDK 版本Node.js SDK 版本Java SDK 版本
2.5.32.5.32.5.32.5.4

Milvus 2.5.3 提供重要的錯誤修正與效能強化,以改善整體穩定性、可靠性與可用性。此版本改進了並發處理、加強了資料索引和擷取,並更新了幾個關鍵元件,以提供更強大的使用者體驗。

錯誤修正

  • 修正了在VARCHAR 主索引鍵上使用IN 過濾器可能返回空結果的問題。(#39108)
  • 修正了查詢與刪除操作之間的並發問題,該問題可能會導致不正確的結果。(#39054)
  • 修正了查詢請求中expr 為空時,迭代過濾所導致的失敗。(#39034)
  • 修正了配置更新時磁碟錯誤導致使用預設配置設定的問題。(#39072)
  • 修正了聚類壓縮可能導致刪除資料遺失的問題。(#39133)
  • 修正了在成長中的資料片段中,文字匹配查詢出錯的問題。(#39113)
  • 修正了因索引不包含稀疏向量的原始數據而導致的檢索失敗。(#39146)
  • 修正了並行查詢和資料載入可能導致的列字段競賽情況。(#39152)
  • 修正了當資料中沒有包含 nullable 或 default_value 欄位時,大量插入的失敗問題。(#39111)

改進

  • 為 RESTful 介面新增資源群組 API。(#39092)
  • 利用 bitset SIMD 方法優化了擷取效能。(#39041)
  • 指定時使用 MVCC 時間戳作為保證時間戳。(#39019)
  • 新增遺失的刪除指標。(#38747)
  • 更新 Etcd 至 v3.5.16 版。(#38969)
  • 建立新的 Go 套件來管理 protos。(#39128)

v2.5.2

發行日期: 2025年1月3日

Milvus 版本Python SDK 版本Node.js SDK 版本Java SDK 版本
2.5.22.5.32.5.32.5.3

Milvus 2.5.2 支援修改 VARCHAR 欄位的最大長度,並解決了幾個關於並發、分割區丟失以及匯入時 BM25 統計處理的重要問題。我們強烈建議升級至此版本,以改善穩定性和效能。

改進

  • 僅在指定路徑不存在時才產生磁碟使用記錄。(#38822)
  • 新增調整最大 VARCHAR 長度的參數,並將限制恢復為 65,535(#38883)
  • 支持表達式的參數類型轉換。(#38782)

錯誤修正

  • 修正了並發情況下的潛在死鎖。(#38863)
  • 只為支援空值的欄位產生 index_null_offset 檔案。(#38834)
  • 修正了還原階段中 free 之後的 retrieve 計劃使用問題。(#38841)
  • 識別大寫 AND 和 OR 的表達式。(#38928)
  • 即使載入失敗,也允許成功丟棄分割區。(#38874)
  • 修正匯入時 BM25 統計檔註冊問題。(#38881)

v2.5.1

發行日期:2024 年 12 月 26 日

Milvus 版本Python SDK 版本Node.js SDK 版本Java SDK 版本
2.5.12.5.22.5.22.5.2

Milvus 2.5.1 主要針對記憶體載入、RBAC 列表、查詢節點平衡和封存段索引等一系列錯誤進行修復,同時也改進了 Web UI 和截取器。我們強烈建議升級至 2.5.1,以增強穩定性和可靠性。

改進

  • 更新 Web UI 收集和查詢頁面。(#38701)

錯誤修正

  • 在載入估算中加入記憶體因素,修正了 OOM 問題。(#38722)
  • 在 RootCoord 中列出政策時,修正了特權群組擴充的問題。(#38760)
  • 修正列出特權群組與集合的問題。(#38738)
  • 修正了平衡器,以避免重複超載相同的查詢節點。(#38724)
  • 修正了在 QueryCoord 重新啟動後所觸發的意外平衡任務。(#38725)
  • 修正了載入配置更新不適用於載入集合的問題。(#38737)
  • 修正資料匯入時讀取計數為零的問題。(#38695)
  • 修正了表達式中 JSON 鍵的 Unicode 解碼問題。(#38653)
  • 修正了2.5版本中alterCollectionField的interceptor DB名稱。 (#38663)
  • 當使用 BM25 強力搜尋時,修正了封存區段的空索引參數。(#38752)

v2.5.0

發行日期:2024 年 12 月 23 日

Milvus 版本Python SDK 版本Node.js SDK 版本Java SDK 版本
2.5.02.5.12.5.22.5.2

Milvus 2.5.0 為處理向量搜尋與大規模資料管理的使用者帶來了顯著的進步,以提升可用性、可擴充性與效能。在此版本中,Milvus 整合了強大的新功能,例如:基於術語的搜尋、針對最佳化查詢的聚類壓縮,以及對稀疏與密集向量搜尋方法的多樣化支援。在群集管理、索引和資料處理方面的強化,將彈性和易用性提升到新的層級,使 Milvus 成為更強大、更易於使用的向量資料庫。

主要功能

Milvus 2.5 支援以 Sparse-BM25 實作的全文檢索!此功能是 Milvus 強大語義搜尋功能的重要補充,尤其是在涉及罕見字詞或技術術語的情況下。在之前的版本中,Milvus 支援稀疏向量以協助關鍵字搜尋。這些稀疏向量是由 SPLADEv2/BGE-M3 等神經模型或 BM25 演算法等統計模型在 Milvus 外部產生的。

Tantivy 的支援下,Milvus 2.5 內建了分析器和稀疏向量萃取,將 API 從僅接收向量作為輸入擴展到直接接受文字。當資料插入時,BM25 統計資訊會即時更新,提升可用性與精確度。此外,以近似近鄰 (ANN) 演算法為基礎的稀疏向量,提供比標準關鍵字搜尋系統更強大的效能。

如需詳細資訊,請參閱Analyzer 概觀全文檢索。

叢集管理 WebUI (測試版)

為了更好地支援海量資料和豐富的功能,Milvus 的精密設計包括各種依賴關係、眾多節點角色、複雜的資料結構等。這些方面都可能為使用和維護帶來挑戰。

Milvus 2.5 引入了內建的叢集管理 WebUI,透過可視化 Milvus 複雜的運行環境資訊,降低系統維護的難度。這包括資料庫和資料集、網段、頻道、依存關係、節點健康狀態、任務資訊、緩慢查詢等詳細資訊。

如需詳細資訊,請參閱Milvus WebUI

文字匹配

Milvus 2.5 利用Tantivy的分析器和索引來進行文字預處理和索引建立,支援根據特定詞彙對文字資料進行精確的自然語言匹配。此功能主要用於滿足特定條件的篩選搜尋,並可結合標量篩選來精細查詢結果,允許在符合標量條件的向量內進行相似性搜尋。

如需詳細資訊,請參閱Analyzer 概觀文字匹配

位圖索引

Milvus 系列新增了標量資料索引。BitMap 索引使用長度等於行數的位元陣列來表示值的存在並加速搜尋。

Bitmap 索引傳統上對於低心數欄位非常有效,因為低心數欄位只有少量不同的值--例如,包含性別資訊的欄位只有兩個可能的值:男性和女性。

如需詳細資訊,請參閱位元圖索引

可空值與預設值

Milvus 現在支援為除主索引鍵欄位以外的標量欄位設定 nullable 屬性和預設值。對於標記為nullable=True 的標量欄位,使用者可以在插入資料時省略該欄位;系統會將其視為空值或預設值(如果已設定),而不會產生錯誤。

預設值和可為空的屬性為 Milvus 提供了更大的靈活性。使用者在建立集合時,可以利用此功能來處理值不確定的欄位。它也簡化了從其他資料庫系統到 Milvus 的資料遷移,允許處理包含空值的資料集,同時保留原始的預設值設定。

詳情請參閱Nullable & Default Value

基於 Faiss 的 HNSW SQ/PQ/PRQ

透過與 Faiss 社群的密切合作,Faiss 中的 HNSW 演算法在功能和效能上都有顯著的改善。基於穩定性和可維護性的考量,Milvus 2.5 正式將 HNSW 的支援從 hnswlib 移轉到 Faiss。

在 Faiss 的基礎上,Milvus 2.5 支援 HNSW 的多種量化方法,以滿足不同場景的需求:SQ (Scalar Quantizers)、PQ (Product Quantizer)、PRQ (Product Residual Quantizer)。SQ 和 PQ 比較常見;SQ 提供良好的查詢效能和建立速度,而 PQ 則在相同的壓縮比下提供較佳的召回率。許多向量資料庫普遍使用二進位量化,這是 SQ 量化的一種簡單形式。

PRQ 是 PQ 與 AQ (Additive Quantizer) 的融合。與 PQ 相比,它需要更長的建立時間,才能提供更好的召回率,尤其是在高壓縮率時,說二進位壓縮。

聚類壓縮 (測試版)

Milvus 2.5 引入了聚類壓縮 (Clustering Compaction),以加速搜尋並降低大型資料庫的成本。透過指定標量欄位作為聚類關鍵,資料會依範圍重新分配,以最佳化儲存與擷取。此功能的作用類似全局索引,可讓 Milvus 在根據聚類元資料進行查詢時,有效地剪裁資料,並在套用標量篩選條件時,提升搜尋效能。

如需詳細資訊,請參閱聚類壓縮

其他功能

串流節點 (測試版)

Milvus 2.5 引入了一個稱為串流節點的新元件,提供先寫後記錄 (WAL) 服務。這可讓 Milvus 在讀寫通道前後達成共識,釋放新特性、功能和最佳化。Milvus 2.5 預設停用此功能,並將於 3.0 版正式提供。

IPv6 支援

Milvus 現在支援 IPv6,擴大網路連線性與相容性。

CSV 大量匯入

除了 JSON 和 Parquet 格式外,Milvus 現在還支援直接大量匯入 CSV 格式的資料。

加速查詢的表達式範本

Milvus 現在支援表達式範本,提高表達式解析效率,特別是在使用複雜表達式的情況下。

如需詳細資訊,請參閱篩選模板

GroupBy 增強功能

  • 可自訂群組大小:新增支援指定每個群組返回的項目數量。
  • 混合 GroupBy 搜尋:支援基於多向量列的混合 GroupBy 搜尋。

迭代器增強功能

  • MVCC 支援:使用者現在可以使用迭代器,而不會受到後續資料變更 (例如插入與刪除) 的影響,這都要歸功於多版本並發控制 (Multi-Version Concurrency Control, MVCC)。
  • 持久游標:Milvus 現在支援 QueryIterator 的持久游標,讓使用者可以在 Milvus 重新啟動後,從最後一個位置恢復迭代,而不需要重新啟動整個迭代過程。

改進

刪除優化

透過優化鎖的使用和記憶體管理,提高了大規模刪除的速度並降低了記憶體使用量。

相依性升級

升級至 ETCD 3.5.16 與 Pulsar 3.0.7 LTS,修正現有的 CVE 並加強安全性。注意:升級至 Pulsar 3.x 與之前的 2.x 版本不相容。

對於已經有一個正常運作的 Milvus 部署的使用者,您需要先升級 ETCD 和 Pulsar 元件,才能使用新的特性和功能。詳情請參考Pulsar 從 2.x 升級到 3.x

本機儲存 V2

在 Milvus 2.5 中引入了新的本地文件格式,提高了標量資料的載入和查詢效率,減少了記憶體開銷,並為未來的優化奠定了基礎。

表達式解析最佳化

透過對重複表達式實施快取、升級 ANTLR,以及優化NOT IN 子句的效能,改善表達式解析。

改善 DDL 並發效能

優化了資料定義語言 (DDL) 作業的並發效能。

RESTful API 功能對齊

將 RESTful API 的功能與其他 SDK 統一。

安全性與組態更新

支援 TLS 以確保在更複雜或企業環境中的節點間通訊安全。如需詳細資訊,請參閱安全性設定

壓縮效能增強

移除混合壓縮中的最大區段限制,現在會優先處理較小的區段,以提高效率並加快大型或分散資料集的查詢速度。

基於分數的通道平衡

引進可動態平衡各通道負載的政策,在大規模部署中提高資源利用率和整體穩定性。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?