與 Milvus 合作
在 Milvus 中建立收藏集
在 Milvus 中,集合用於儲存和管理實體。 Milvus 中的集合等同於關聯式資料庫管理系統 (RDBMS) 中的資料表。
在 Milvus 中建立 收藏 集,請參閱建立收藏集。
在 Milvus 中插入資料
Milvus 支援標量欄位的預設值,但主索引欄位除外。 在資料插入期間,您可以將部分欄位保留空白。
有關更多信息,請參閱 插入條目。
建議批量插入數據,原因如下:
-
單一 GRPC API 呼叫中可以攝取的向量數量受到以下條件允許的最大訊息大小的限制:Kafka。 在 IBM Cloud中,訊息大小上限限制為 1 MB。
-
一次可以插入的列數上限取決於您嘗試汲取的資料大小總計。 隨著向量維度的增加以及列中非向量欄位的存在,確切數目會減少。
使用大量插入 API 來插入大於 500,000 個向量的資料集。 汲取較大的資料集時,大量插入 API 的執行效能比批次插入 API 好。 使用.npy 檔案是擷取大型資料集的建議方式。 如果您使用批次插入 API,請在每 500,000 列之後手動清除集合。 有關更多信息,請參閱 批量插入API。
在 Milvus 中建立索引
在 Milvus 中進行近似近鄰 (ANN) 搜尋之前,先建立索引。
IBM 正式支援下列索引:
未列在此清單中的索引可能可以運作,但 IBM不會驗證這些索引。
當段中的行數少於 1024 時,Milvus 將不會為該段建立任何索引。 取而代之,它會預設使用 brute-force
搜尋查詢操作。 一旦段中的行數超過此臨界值,Milvus 將自動開始建立索引。
- HNSW
- SCANN
- FLAT
- IVF_FLAT
- IVF_PQ
您可以透過指定向量欄位名稱及索引參數來建立索引。 有關更多信息,請參閱 索引向量字段。
在 Milvus 中進行向量相似性搜尋
在 Milvus 中,您可以在準備好搜尋情境的參數後,進行向量相似性搜尋。
- 有關單向量和多向量搜尋的更多信息,請參閱 向量相似度搜尋。
- 有關混合(多向量)搜尋的更多信息,請參閱 混合搜尋。
- 如需更多關於混合式與 GroupBy 搜尋的資訊,請參閱 混合式 GroupBy 搜尋中 的 GroupBy 增強功能部分。
在 Milvus 中基於標量篩選進行查詢
在 Milvus 中,您可以基於標量篩選進行查詢。 有關更多信息,請參閱 取得和標量查詢。
您可以執行以下搜尋類型:
對大型資料集執行具有純量過濾的搜尋查詢時,請務必調整 limit 參數,以有效地管理查詢結果。 使用以下方法設定 limit
範圍:
hello_milvus.query(expr=query_condition, output_fields=["random", "embeddings"], limit=100,offset=0)
值的總和 limit
和 offset
參數必須在以下範圍內[1、16384]。
使用主索引鍵從 Milvus實體
在 Milvus 中,您可以使用主索引鍵刪除實體。 準備用於過濾要刪除的實體的布林表達式。
如需相關資訊,請參閱 刪除實體。
從 Milvus 掉落一個收藏
丟棄 Milvus 的收藏是不可逆轉的。 您無法回復已刪除的資料。
將以下內容新增至您的 .ipynb
或者Python刪除集合的腳本..
from pymilvus import utility
utility.drop_collection(<collection name>)
最佳作法
以下是一些最佳實踐:
- 如果有長的 Varchar 欄位 (大於 256 個字元),請將非向量欄位保留在 Milvus 以外。 您可以將它們保存在 COS 桶或儲存桶中並進行引用搜尋。
- 確保PyMilvus版本是2.4.0或稍後。 Milvus 2.4.0 或更高版本支援稀疏向量搜尋、混合搜尋 (
sparse_dense
) 及多重向量搜尋。 - 使用批次插入載入集合時,請遵循以下模式:批次插入,釋放內存,然後重複此過程。
- 不要同時並行攝取所有集合。 依序攝取並在攝取之間沖洗。
- 每個集合的最大尺寸應與 T 卹尺寸中支援的最大向量數量相對應。
- 如果載入了多個集合或分區,請確保所有載入實體中的向量總和不超過 T 卹尺寸的限制。 只要載入的向量數量在限制範圍內,您仍然可以儲存超過 T 卹尺寸限制的向量。
在 Milvus 升級期間,回應可能會有大約 20 秒的輕微延遲。 正在進行的搜尋和更新插入查詢可能會失敗。 您可以立即重試查詢。
樣本筆記簿 Milvus
有了這些示範筆記本,您就可以透過逐步教學來試用 Milvus 的功能。 若要存取樣本筆記簿,請參閱 Milvus 樣本筆記簿。