Milvus 详细介绍与上手教程

什么是 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 仓库

如果需要更详细的教程或针对特定场景的使用指导,请告诉我!