Milvus 新版本 v0.11.0 重磅釋出!新增標量欄位過濾功能,使用更靈活!
釋出時間:2020-10-16
版本相容
升級必看⚠️
1. 調整了 partition tag 的支援字符集:
-
不支援使用英文字母、數字、"_"、"$" 以外的字元命名 partition tag。
-
partition tag 的首字母不支援使用英文字母或下劃線以外的字元。
2.服務端配置檔案結構調整
-
server_config.yaml更名為milvus.yaml,
-
配置引數相容
a.b.c: value
的展平格式。
3.調整了二值型向量支援索引名稱:
-
IVF_FLAT
變更為BIN_IVF_FLAT
, -
FLAT
變更為BIN_FLAT
。
4.移除原有的CreateCollection()
方法。
新增的CreateCollection()
方法刪除了原有的index_file_size
引數,新增segment_row_limit
引數用於設定單個數據段檔案大小的上限和下限。單個數據段檔案的值域範圍為 [ 1 ×segment_row_limit
, 2 ×segment_row_limit
)。
5. 移除原有的Search()
方法。
新增的Search()
方法新增MetricType
引數用於指定距離計算方式。
6. 移除原有的GetIndexInfo()
方法。
改用GetCollectionInfo()
獲取相關資料。
7. v0.11.0 Milvus 暫不支援 Mishards 分散式方案。
8. Python SDK 和 Java SDK 會在操作失敗時丟擲異常。
9. RESTful API 支援分頁讀取實體。
詳見collections/{collection_name}/entities (GET)
。
新增功能
1. 標量欄位過濾
支援在插入向量資料時攜帶與該向量相關的標量資料。
支援在查詢時利用標量資料過濾查詢結果:
標量資料支援 TermQuery 和 RangeQuery 兩種匹配模式。後者支援以下四種運算子:
-
大於:
gt
-
大於等於:
gte
-
小於:
lt
-
小於等於:
lte
-
在標量匹配和向量查詢之間支援
MUST
MUST_NOT
和SHOULD
三種邏輯組合。 -
支援在查詢結果中返回結果向量相關的標量欄位。
-
支援在標量資料上建立索引加速結構化資料的過濾。
2. 支援在查詢時指定距離計算方式
-
如果查詢時指定的
MetricType
與建索引時設定的MetricType
一致,Milvus 使用索引查詢; -
如果指定的
MetricType
與建索引時設定的MetricType
不一致,Milvus 會進行暴搜。
主要改進
1.升級第三方依賴 oatpp
升級第三方依賴 oatpp 至更為穩定的 v1.1.0 版本。
2. 重寫 SQLite 後端操作
移除第三方依賴 sqlite_orm。
3. 重組 WAL 目錄結構
新版 WAL 的目錄結構按照 collection 儲存相關資料。
4. 元資料快照
支援基於元資料快照的搜尋:進行資料插入、刪除操作後 Milvus 會自動為元資料產生包含版本資訊的快照並快取至記憶體中,查詢請求可以使用快取的對應版本中進行。
5. 分離索引和原始資料
IVFFLAT 和 HNSW 兩種索引的 **indexfile** 檔案不再包含原始向量資料,改用向量的偏移量以減小硬碟佔用。
API 變更
-
RESTful API
-
Python
-
Java
-
C++
刪除 API
-
GetIndexInfo
點選左下角的閱讀原文檢視完整 release note!
升級攻略請點此收藏:Milvus 遷移升級攻略
歡迎加入 Milvus 社群
github.com/milvus-io/milvus 原始碼
milvus.io 官網
milvusio.slack.com Slack 社群
zhihu.com/org/zilliz-11/columns知乎
zilliz.blog.csdn.netCSDN部落格
space.bilibili.com/478166626Bilibili