集合說明
在 Milvus 中,您可以創建多個集合來管理您的資料,並將您的資料作為實體插入到集合中。集合和實體類似於關係數據庫中的表格和記錄。本頁幫助你了解集合和相關概念。
集合
集合是具有固定欄位和變異行的二維表。每列代表一個欄位,每行代表一個實體。
下圖顯示一個有八列和六個實體的集合。
集合說明
模式與欄位
描述物件時,我們通常會提到物件的屬性,例如大小、重量和位置。您可以在集合中使用這些屬性作為欄位。每個欄位都有各種限制屬性,例如向量欄位的資料類型和維度。您可以透過建立欄位和定義其順序來形成集合模式。有關可能適用的資料類型,請參閱Schema Explained。
您應該在要插入的實體中包含所有模式定義的欄位。若要使其中一些欄位成為選項,請考慮
使其為空或設定預設值
有關如何使欄位為空或設定預設值的詳細資訊,請參閱Nullable & Default。
啟用動態欄位
有關如何啟用和使用動態欄位的詳細資訊,請參閱動態欄位。
主鍵和 AutoId
類似於關聯式資料庫中的主欄位,一個集合有一個主欄位,用來區分一個實體與其他實體。主欄位中的每個值都是全局唯一的,並對應一個特定的實體。
如上圖所示,名為id的欄位為主要欄位,第一個 ID0對應一個名為The Mortality Rate of Coronavirus is Not Important 的實體。不會有任何其他實體的主要欄位為 0。
主欄位只接受整數或字串。插入實體時,預設應包含主要欄位值。但是,如果您在創建集合時啟用了AutoId,Milvus 會在插入資料時產生這些值。在這種情況下,從要插入的實體中排除主字段值。
如需更多資訊,請參閱Primary Field & AutoID。
索引
在特定欄位上建立索引可提高搜尋效率。建議您為服務所依賴的所有欄位建立索引,其中向量欄位的索引是強制性的。
實體
實體是在集合中共用相同欄位集的資料記錄。同一行中所有欄位的值組成一個實體。
您可以根據需要在集合中插入任意數量的實體。但是,隨著實體數量的增加,其所佔用的記憶體大小也會增加,從而影響搜尋效能。
如需詳細資訊,請參閱Schema Explained。
載入和釋放
載入一個集合是在集合中進行相似性搜索和查詢的先決條件。當你載入一個資料集時,Milvus 會將所有索引檔案和每個欄位的原始資料載入記憶體,以便快速回應搜尋和查詢。
搜尋和查詢是需要大量記憶體的作業。為了節省成本,建議您釋放目前不使用的資料集。
如需詳細資訊,請參閱載入與釋放。
搜尋和查詢
建立索引並載入資料庫後,您可以輸入一個或多個查詢向量,開始相似性搜尋。舉例來說,當接收到搜尋要求中攜帶的查詢向量表達時,Milvus 會使用指定的度量類型來測量查詢向量與目標資料集中的相似度,然後再回傳那些與查詢語意相似的向量。
您也可以在搜尋與查詢中加入 metadata 過濾,以改善結果的相關性。請注意,元資料篩選條件在查詢中是強制性的,但在搜尋中是選擇性的。
如需適用公制類型的詳細資訊,請參閱公制類型。
有關搜尋和查詢的詳細資訊,請參閱「搜尋與重新排名」章節中的文章,其中的基本功能如下。
此外,Milvus 也提供增強功能來改善搜尋效能與效率。這些功能預設為停用,您可以根據服務需求啟用和使用它們。它們是
分區
分區是集合的子集,與其父集合共用相同的欄位集,每個分區包含一個實體子集。
透過將實體分配到不同的分區,您可以建立實體群組。您可以在特定分區中進行搜尋和查詢,讓 Milvus 忽略其他分區中的實體,並提高搜尋效率。
如需詳細資訊,請參閱管理分區。
分區
分片是一個集合的水平切片。每個分片對應一個資料輸入通道。每個集合預設都有一個分區。您可以根據預期的吞吐量和要插入到資料集中的資料量,在建立資料集中時設定適當的分片數量。
有關如何設定分片數量的詳細資訊,請參閱建立集合。
別名
您可以為集合建立別名。一個資料集可以有多個別名,但資料集不能共用一個別名。當收到針對集合的請求時,Milvus 會根據所提供的名稱找到集合。如果所提供名稱的集合不存在,Milvus 會繼續定位所提供名稱的別名。您可以使用集合別名來使您的程式碼適應不同的情況。
如需詳細資訊,請參閱管理別名。
函數
您可以為 Milvus 設定函式,以便在建立集合時衍生欄位。例如,全文檢索函式使用使用者定義的函式,從特定的 varchar 欄位推導出稀疏向量欄位。有關全文檢索的詳細資訊,請參閱全文檢索。
一致性層級
分散式資料庫系統通常使用一致性層級來定義資料節點和複製本之間的資料相同性。您可以在建立資料集或在資料集中進行相似性搜尋時,設定不同的一致性層級。適用的一致性層級包括強、有限制的僵化、會話和最終。
有關這些一致性層級的詳細資訊,請參閱一致性層級。
限制
有關集合的限制,請參閱限制。