術語
AutoID
AutoID 是主欄位的屬性,用於決定是否為主欄位啟用自動遞增功能。AutoID 的值是根據時間戳記定義的。如需更多資訊,請參閱create_schema。
自動索引
Milvus 會根據經驗數據,自動為特定欄位決定最適合的索引類型與參數。此功能特別適用於您無需自行控制特定索引參數的情況。如需更多資訊,請參閱add_index。
Attu
Attu是 Milvus 的全能管理工具,能顯著降低系統管理的複雜度與成本。
Birdwatcher
Birdwatcher是 Milvus 的除錯工具,可連線至 etcd,讓您監控 Milvus 伺服器的狀態並進行即時調整。它同時支援 etcd 檔案備份,協助開發人員進行故障排除。
Bulk Writer
Bulk Writer是 Milvus SDK(例如 PyMilvus、Java SDK)所提供的一款資料處理工具,旨在將原始資料集轉換為與 Milvus 相容的格式,以實現高效匯入。
批量插入
批量插入(Bulk Insert)是一項 API,可透過單一請求匯入多個檔案來提升寫入效能,從而優化大型資料集的操作。
Cardinal
由 Zilliz Cloud 開發的 Cardinal,是一種尖端向量搜尋演算法,能提供無與倫比的搜尋品質與效能。憑藉其創新設計與廣泛的優化,Cardinal 的表現比 Knowhere 高出數倍至一個數量級,同時能適應性地處理各種生產情境,例如變動的 K 值、高篩選率、不同的資料分佈等。
Channel
Milvus 採用PChannel與VChannel 兩種通道,作為其串流服務架構的一部分。每個 PChannel 對應由Woodpecker 管理的 WAL 串流,而每個 VChannel 則對應集合中的分片。串流服務負責管理這些通道,以確保資料一致性與故障恢復。
集合
在 Milvus 中,集合相當於關係型資料庫管理系統(RDBMS)中的資料表。集合是用於儲存和管理實體的主要邏輯物件。如需更多資訊,請參閱《管理集合》。
依賴項
依賴項是指另一個程式運作時所依賴的程式。Milvus 的依賴項包括 etcd(儲存元資料)、MinIO 或 S3(物件儲存),以及如 Woodpecker 之類的訊息佇列(管理快照日誌)。如需更多資訊,請參閱《資料基礎架構》。
動態模式
動態模式允許您在不修改現有模式的情況下,將包含新欄位的實體插入集合中。這意味著您無需了解集合的完整模式即可插入資料,並可包含尚未定義的欄位。您可在建立集合時啟用「動態欄位」功能,以啟用此無模式功能。如需更多資訊,請參閱《啟用動態欄位》。
嵌入向量
Milvus 提供內建的嵌入向量函式,可與常見的嵌入向量提供者配合使用。在 Milvus 中建立集合之前,您可以使用這些函式為資料集產生嵌入向量,藉此簡化資料準備與向量搜尋的流程。如需實際建立嵌入向量的操作指南,請參閱《使用 PyMilvus 模型產生文字嵌入向量》。
實體
實體由一組代表現實世界物件的欄位所組成。Milvus 中的每個實體皆由一個唯一的主鍵所代表。
您可以自訂主鍵。若未手動設定,Milvus 會自動為實體指派主鍵。若選擇自訂主鍵,請注意 Milvus 目前尚不支援主鍵去重功能。因此,同一個集合中可能會出現重複的主鍵。如需更多資訊,請參閱《插入實體》。
欄位
Milvus 集合中的欄位相當於 RDBMS 中的資料表欄位。欄位可以是用於結構化資料的標量欄位(例如數字、字串),或是用於嵌入向量的向量欄位。
篩選
Milvus 支援透過命題進行標量篩選,讓您能在查詢與搜尋中定義篩選條件,以精確篩選結果。
篩選搜尋
篩選搜尋將標量篩選器套用至向量搜尋,讓您能依據特定條件精確篩選搜尋結果。如需更多資訊,請參閱「篩選搜尋」。
混合搜尋
自 Milvus 2.4.0 起,「混合搜尋」即為混合搜尋的 API。您可以搜尋多個向量欄位並將其融合。若為結合向量搜尋與標量欄位篩選的搜尋,則稱為「篩選搜尋」。如需更多資訊,請參閱《混合搜尋》。
索引
向量索引是從原始資料衍生而來、經過重新組織的資料結構,能大幅加速向量相似度搜尋的過程。Milvus 支援多種適用於向量欄位與標量欄位的索引類型。如需更多資訊,請參閱《向量索引類型》。
Kafka-Milvus 連接器
Kafka-Milvus 連接器是指用於 Milvus 的 Kafka 接收端連接器。它允許您將向量資料從 Kafka 串流傳輸至 Milvus。
Knowhere
Knowhere是 Milvus 的核心向量執行引擎,整合了多個向量相似度搜尋函式庫,包括 Faiss、Hnswlib 及 Annoy。 Knowhere 亦專為支援異質運算而設計。它能控制應在何種硬體(CPU 或 GPU)上執行索引建置與搜尋請求。這正是 Knowhere 名稱的由來——「知曉」該在何處執行操作。
日誌快照
日誌快照是一種二進位日誌,是分段中的較小單位,用於記錄並處理 Milvus 中資料的更新與變更。分段中的資料會儲存於多個二進位日誌中。Milvus 中有三種類型的二進位日誌:InsertBinlog、DeleteBinlog 以及 DDLBinlog。 如需更多資訊,請參閱「元資料儲存」。
度量類型
相似度度量類型用於衡量向量之間的相似度。目前,Milvus 支援歐幾里得距離 (L2)、內積 (IP)、餘弦相似度 (COSINE) 以及二進位度量類型。您可以根據使用情境選擇最適合的度量類型。如需更多資訊,請參閱《相似度度量》。
MemoryBuffer
MemoryBuffer 是 Woodpecker 的一種輕量級部署模式,會將傳入的寫入資料暫時緩衝在記憶體中,並定期將其寫入雲端物件儲存。此模式最適合用於小規模部署中的大量批次工作負載,或優先考量簡便性而非效能的生產環境。如需更多資訊,請參閱《Woodpecker 架構》。
Mmap
記憶體映射檔案透過將檔案內容直接映射至記憶體中,實現高效的数据處理。當記憶體資源有限且無法載入所有資料時,此功能尤為實用。此技術可在一定程度上提升資料容量並維持效能。然而,若資料量遠超過記憶體容量,搜尋與查詢速度可能會大幅下降。 如需更多資訊,請參閱《支援 MMap 的資料儲存》。
Milvus 備份
Milvus 備份是一項用於建立資料副本的工具,可在發生資料遺失事件後,藉此還原原始資料。
Milvus CDC
Milvus CDC(變更資料擷取)是一項用於將資料變更從一個 Milvus 叢集複製到另一個叢集的工具,用於主備災難復原。
Milvus CLI
Milvus 命令列介面(CLI) 是一款支援資料庫連線、資料操作以及資料匯入與匯出的命令列工具。它基於Milvus Python SDK,可透過終端機以互動式命令列提示執行指令。
Milvus Migration
Milvus Migration是一款開源工具,旨在協助將資料從各種資料來源輕鬆遷移至 Milvus 2.x。
Milvus 叢集
在 Milvus 的叢集部署中,服務由一組節點提供,以實現高可用性與輕鬆的可擴展性。
Milvus 獨立模式
在 Milvus 的獨立部署模式中,所有操作(包括資料插入、索引建置及向量相似度搜尋)皆在單一程序中完成。
多向量
自 2.4.0 版本起,Milvus 支援在單一集合中包含多個向量欄位。如需更多資訊,請參閱「混合搜尋」。
分區
分區是對集合的劃分。Milvus 支援將集合資料在實體儲存裝置上劃分為多個部分。此過程稱為分區,每個分區可包含多個區段。如需更多資訊,請參閱「管理分區」。
分區鍵
欄位的「分區鍵」屬性可根據實體的分區鍵值,將實體區分至不同的分區中。此分組機制確保具有相同鍵值的實體會集中儲存,當系統依據分區鍵欄位進行篩選查詢時,可跳過無關的分區,從而加速搜尋操作。如需更多資訊,請參閱「使用分區鍵」。
PChannel
PChannel 代表「實體通道」。每個 PChannel 對應一個由 Woodpecker 管理的 WAL 串流。預設情況下,當 Milvus 叢集啟動時,系統會指派一組 PChannel 來儲存記錄資料插入、刪除及更新操作的日誌。如需更多資訊,請參閱「串流服務」。
PyMilvus
PyMilvus 是 Milvus 的 Python SDK。其原始碼已開源,並託管於GitHub。您可以靈活選擇使用 MilvusClient(新版 Python SDK)或原始的 ORM 模組來與 Milvus 進行通訊。
查詢
查詢(Query)是一種 API,可透過指定的布林表達式作為篩選條件,執行標量篩選。如需更多資訊,請參閱「取得與標量查詢」。
QuorumBuffer
QuorumBuffer 是 Woodpecker 的一種部署模式,專為對延遲敏感且需同時具備即時響應能力與強大容錯能力的高頻讀寫工作負載而設計。它作為具備三副本多數決寫入功能的高速寫入緩衝區,可確保強一致性與高可用性。如需更多資訊,請參閱《Woodpecker 架構》。
範圍搜尋
範圍搜尋可讓您找出位於搜尋向量指定距離範圍內的向量。如需更多資訊,請參閱《範圍搜尋》。
模式
模式是定義資料類型與資料屬性的元資料。每個集合皆擁有專屬的集合模式,用以定義集合的所有欄位、自動 ID(主鍵)分配功能,以及集合描述。欄位模式亦包含於集合模式中,用以定義欄位的名稱、資料類型及其他屬性。 如需更多資訊,請參閱「管理模式」。
搜尋
搜尋是一項用於執行向量相似度搜尋操作的 API,其執行需依賴向量資料。如需更多資訊,請參閱「單一向量搜尋」。
分段
分段(Segment)是自動建立的資料檔案,用於儲存插入的資料。一個集合可能包含多個分段,而每個分段可容納大量實體。在向量相似度搜尋過程中,Milvus 會檢視每個分段以彙整搜尋結果。
分段分為兩種類型:增長型與封存型。增長型分段會持續收集新資料,直到達到特定閾值或時間限制為止,之後便會轉為封存型。一旦封存,該分段將不再接受新資料,並會被轉移至物件儲存。 與此同時,新進資料將被導向至新的增長型分段。從增長型分段轉為封存型分段的觸發條件,為達到預先定義的實體上限,或超過增長狀態的最大允許持續時間。如需更多資訊,請參閱《設計細節》。
Spark-Milvus 連接器
Spark-Milvus 連接器提供Apache Spark 與 Milvus 之間的無縫整合,結合 Apache Spark 的資料處理與機器學習 (ML) 功能,以及 Milvus 的向量資料儲存與搜尋能力。
分片
Milvus 透過分片將寫入操作分散至多個節點,從而提升資料寫入效能;這些分片是根據主鍵的雜湊值進行組織的。此機制充分利用了叢集的平行運算能力。
分區(Partitioning)透過指定分區名稱來減輕讀取負載,而分片(Sharding)則將寫入負載分散至多個伺服器。
稀疏向量
稀疏向量透過向量嵌入來表示單字或短語,其中大部分元素為零,僅有一個非零元素表示特定單字的存在。稀疏向量模型(例如 SPLADEv2)在域外知識搜尋、關鍵字感知能力及可解釋性方面,表現優於密集模型。 如需更多資訊,請參閱《稀疏向量》。
串流服務
串流服務是 Milvus 內部串流系統模組的概念,其建構於預寫日誌(WAL)之上,用以支援各項與串流相關的功能。這些功能包括串流資料的導入/訂閱、叢集狀態的故障恢復、將串流資料轉換為歷史資料,以及針對不斷增長的資料進行查詢。 該服務由串流協調器、串流節點叢集及串流客戶端等元件組成。如需更多資訊,請參閱《串流服務》。
非結構化資料
非結構化資料(包括圖像、影片、音訊及自然語言)是指不遵循預先定義模型或組織方式的資訊。此資料類型約佔全球資料的 80%,並可透過各種人工智慧(AI)和機器學習(ML)模型轉換為向量。
VChannel
VChannel 代表虛擬通道。每個 VChannel 代表集合中的一个分片。每個集合都會被分配一組 VChannel,用於記錄資料的插入、刪除和更新。VChannel 們在邏輯上相互獨立,但在實體層面上透過串流服務共享資源。如需更多資訊,請參閱《串流服務》。
向量
嵌入向量是對非結構化資料(例如電子郵件、物聯網感測器資料、Instagram 照片、蛋白質結構等)的特徵抽象化。從數學角度來看,嵌入向量是一組浮點數或二進位數的陣列。 現代嵌入技術用於將非結構化資料轉換為嵌入向量。自 2.4.0 版本起,Milvus 同時支援密集向量與稀疏向量。
WAL 儲存
預寫日誌 (WAL) 儲存是分散式系統中資料持久性與一致性的基礎。任何變更在提交之前,都會先記錄在日誌中——確保在發生故障時,能夠精確地從中斷處恢復。 Milvus 採用 Woodpecker 作為其 WAL 儲存系統,該系統同時支援 MemoryBuffer 與 QuorumBuffer 兩種模式。如需更多資訊,請參閱《Woodpecker 架構》。
Woodpecker
Woodpecker 是 Milvus 2.6 中一款雲原生的 WAL 系統,用以取代 Kafka 和 Pulsar。憑藉零磁碟架構及兩種部署模式(MemoryBuffer 和 QuorumBuffer),它能在物件儲存上提供高吞吐量、低運作開銷以及無縫的可擴展性。 如需更多資訊,請參閱《Woodpecker 架構》。
Zilliz Cloud
Zilliz Cloud 上的全託管 Milvus 服務,具備更多企業級功能與高度優化的效能。