什么是 Milvus?
Milvus 是一個開源的向量數據庫,專為管理和檢索大量向量數據而設計,廣泛應用于人工智能、推薦系統、圖像檢索、自然語言處理等領域。它支持 PB 級別的數據存儲,提供高性能的向量檢索服務。
Milvus 的核心功能
1. 高效檢索: 支持 ANN(近似最近鄰)檢索,適用于超大規模向量檢索任務。
2. 多數據類型: 支持文本、圖像、視頻等多種嵌入向量數據。
3. 彈性擴展: 支持水平擴展和分布式部署。
4. 多種索引類型: 包括 IVF、HNSW、DiskANN 等。
5. 多語言 SDK 支持: 提供 Python、Java、Go、C++ 等多種 SDK。
6. 云原生架構: 支持 Kubernetes 部署,便于云上運行。
Milvus 的應用場景
1. 圖像和視頻檢索(內容推薦)
2. 自然語言處理(語義檢索與推薦)
3. 推薦系統(個性化推薦)
4. 生物醫學數據分析(DNA 比對)
5. 安全監控(面部識別)
Milvus 快速上手教程
1. 環境準備
? 操作系統:Linux/macOS/Windows
? 安裝 Docker(推薦)或 Kubernetes(用于生產環境)
2. 安裝 Milvus
使用 Docker 快速啟動:
docker pull milvusdb/milvus:latest
docker run -d –name milvus-standalone -p 19530:19530 -p 8080:8080 milvusdb/milvus:latest
3. 創建 Milvus 客戶端
安裝 Milvus Python SDK:
pip install pymilvus
4. 連接到 Milvus
from pymilvus import connections
connections.connect(
alias=”default”,
host=”localhost”,
port=”19530″
)
5. 創建集合與插入數據
from pymilvus import Collection, FieldSchema, CollectionSchema, DataType
# 定義字段
fields = [
FieldSchema(name=”id”, dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name=”embedding”, dtype=DataType.FLOAT_VECTOR, dim=128)
]
# 定義集合架構
schema = CollectionSchema(fields, “向量數據集合”)
# 創建集合
collection = Collection(“example_collection”, schema)
# 插入數據
import numpy as np
data = [
[i for i in range(1000)], # id
np.random.random([1000, 128]).tolist() # 隨機向量
]
collection.insert(data)
6. 創建索引與檢索
# 創建索引
index_params = {
“metric_type”: “L2”,
“index_type”: “IVF_FLAT”,
“params”: {“nlist”: 100}
}
collection.create_index(field_name=”embedding”, index_params=index_params)
# 搜索向量
search_params = {
“metric_type”: “L2”,
“params”: {“nprobe”: 10}
}
query_vector = np.random.random([1, 128]).tolist()
results = collection.search(
data=query_vector,
anns_field=”embedding”,
param=search_params,
limit=5
)
# 輸出結果
for result in results[0]:
print(f”ID: {result.id}, Distance: {result.distance}”)
Milvus 官方資源
? 官網:Milvus 官方網站
? 文檔:Milvus 文檔中心
? GitHub:Milvus GitHub 倉庫
如果需要更詳細的教程或針對特定場景的使用指導,請告訴我!