關鍵概念

在深入了解Milvus之前,有幾個關鍵概念需要了解:

非結構化數據

非結構化數據包括圖像、視頻、音頻和自然語言等,這些數據不遵循預定義的模型或組織方式。Milvus可以將這些數據轉換為向量,實現向量化存儲和搜索。

嵌入向量

嵌入向量是非結構化數據的特征抽象,通過現代嵌入技術,如深度學習和神經網絡,將非結構化數據轉換為向量。

向量相似性搜索

向量相似性搜索是將一個向量與數據庫中的向量進行比較,以找到與查詢向量最相似的向量的過程。Milvus通過近似最近鄰(ANN)搜索算法加速搜索過程。

為什么選擇Milvus?

Milvus具有以下幾個優點:

支持的索引和度量標準

在Milvus中,索引是數據的組織單元。在搜索或查詢插入的實體之前,必須聲明索引類型和相似性度量標準。Milvus支持多種索引類型和度量標準,以適應不同的搜索需求。

索引類型

Milvus支持的索引類型包括HNSW、FLAT、IVF_FLAT、IVF_SQ8、IVF_PQ、SCANN和DiskANN等,這些索引類型使用近似最近鄰搜索(ANNS)來加速搜索過程。

相似性度量標準

Milvus支持多種相似性度量標準,包括余弦相似度、歐氏距離(L2)、內積(IP)、漢明距離和Jaccard相似度等,這些度量標準用于衡量向量之間的相似性。

示例應用

Milvus可以應用于多種場景,包括圖像相似性搜索、視頻相似性搜索、音頻相似性搜索、推薦系統、問答系統、DNA序列分類和文本搜索引擎等。

Milvus的設計理念

Milvus作為一個云原生向量數據庫,通過設計將存儲和計算分離,增強了系統的彈性和靈活性。Milvus的系統分為訪問層、協調器服務、工作節點和存儲四個層級,所有組件都是無狀態的。

比較Milvus

在探索各種向量數據庫選項時,Milvus以其獨特的功能和優勢脫穎而出。Milvus不僅支持基本的向量相似度搜索,還支持高級功能,如稀疏向量、批量向量、過濾搜索和多向量搜索功能。Milvus支持多種部署模式和多個SDK,在一個強大的集成生態系統中實現。

Milvus亮點

Milvus的主要亮點包括:

開始使用Milvus

本章節將介紹如何在本地運行Milvus Lite,以及如何使用Docker Compose運行Milvus。

在本地運行Milvus Lite

Milvus Lite是Milvus的輕量級版本,可以被導入到Python應用程序中,提供Milvus的核心向量搜索功能。

概述

Milvus Lite與Milvus共享相同的API,并覆蓋了大部分Milvus的功能。使用相同的客戶端代碼,可以在Milvus Lite中快速演示少于百萬個向量,或者在單臺機器上托管Milvus Docker容器的小規模應用程序,最終在Kubernetes上進行大規模生產部署。

先決條件

Milvus Lite支持Ubuntu和MacOS操作系統。

設置Milvus Lite

要設置Milvus Lite,請在終端中運行以下命令:

pip install "pymilvus>=2.4.2"

連接到Milvus Lite

您可以按照以下方式連接到Milvus Lite:

from pymilvus import MilvusClient

client = MilvusClient("milvus_demo.db")

使用Docker Compose運行Milvus

本頁面介紹如何使用Docker Compose在Docker中啟動Milvus實例。

先決條件

需要安裝Docker,并查看硬件和軟件要求。

安裝Milvus

Milvus在其存儲庫中提供了一個Docker Compose配置文件。要使用Docker Compose安裝Milvus,只需運行以下命令:

$ wget https://github.com/milvus-io/milvus/releases/download/v{{var.milvus_release_version}}/milvus-standalone-docker-compose.yml -O docker-compose.yml

$ sudo docker compose up -d

導入數據

本主題描述了如何通過批量加載在Milvus中導入數據。

準備數據文件

您可以按行或列準備數據文件。

數據插入到Milvus

將數據導入到集合中。

單一向量搜索

在插入數據后,下一步是在Milvus集合中執行相似性搜索。

概述

有各種搜索類型可滿足不同需求,包括基本搜索、過濾搜索、范圍搜索和分組搜索。

基本搜索

在發送search請求時,您可以提供一個或多個向量值,表示您的查詢嵌入,以及一個limit值,指示要返回的結果數量。

單向量搜索

單向量搜索是Milvus中最簡單的search操作形式,旨在找到與給定查詢向量最相似的向量。

過濾搜索

過濾搜索對向量搜索應用標量過濾器,允許您根據特定條件細化搜索結果。

使用like運算符

like運算符通過評估包括前綴、中綴和后綴在內的模式來增強字符串搜索。

范圍搜索

范圍搜索允許您查找與查詢向量在指定距離范圍內的向量。

分組搜索

在Milvus中,通過特定字段進行分組搜索可以避免結果中相同字段項的冗余。

FAQ

  1. 問:Milvus支持哪些編程語言?
    答:Milvus支持Python、Java、NodeJS、Go、Restful API、C#和Rust等多種編程語言。

  2. 問:Milvus如何處理大規模數據集?
    答:Milvus通過其定制的分布式架構輕松擴展,可容納從小型數據集到超過100億向量的集合。

  3. 問:Milvus如何實現向量相似性搜索?
    答:Milvus通過近似最近鄰(ANN)搜索算法加速搜索過程,支持多種相似性度量標準,包括余弦相似度、歐氏距離(L2)、內積(IP)、漢明距離和Jaccard相似度等。

  4. 問:Milvus有哪些應用場景?
    答:Milvus可以應用于圖像相似性搜索、視頻相似性搜索、音頻相似性搜索、推薦系統、問答系統、DNA序列分類和文本搜索引擎等多種場景。

  5. 問:如何在本地運行Milvus?
    答:可以在本地運行Milvus Lite,或者使用Docker Compose在Docker中啟動Milvus實例。

上一篇:

機器學習是什么及其實際應用

下一篇:

自動化測試全解析:工具、框架與學習路徑
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費