掘金 人工智能 05月31日 18:23
Milvus 向量数据库快速入门
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入浅出地介绍了Milvus这款开源向量数据库,它专为存储、管理和检索高维向量数据而设计,适用于推荐系统、图像搜索和问答系统等多种AI应用场景。文章从Milvus的核心概念入手,如Collection、Partition和Entity,详细阐述了其逻辑结构。同时,文章还介绍了Milvus的核心操作流程,包括创建Collection、插入数据、构建索引和执行搜索,并提供了一致性模型与数据安全保障。最后,通过Python SDK的完整示例,展示了如何在Milvus中进行向量搜索和条件过滤,并分享了电商推荐系统等真实应用场景。

🗄️Milvus是一款开源向量数据库,擅长处理高维向量数据,为AI应用提供强大的向量检索能力。其逻辑结构由Collection(集合)、Partition(分区)和Entity(实体)组成,每个Entity包含Fields(字段),字段可以是向量或元数据。

🛠️Milvus的核心操作流程包括创建Collection、插入数据、构建索引和执行搜索。创建Collection时需要定义Schema,指定字段名称、数据类型等信息。插入数据后,可以为向量字段创建索引以加速搜索,并加载数据到内存中。

🐍文章提供了一个基于Python SDK的完整示例,展示了如何使用Milvus进行向量搜索和条件过滤。示例中,首先初始化连接,然后创建一个包含商品信息的Collection,插入商品标题和向量数据。接着,创建索引并加载数据,最后执行向量搜索,并根据商品标题进行条件过滤。

🛍️Milvus在电商推荐系统中有着广泛的应用。通过将商品表示为向量,可以根据用户历史行为和偏好,快速找到相似的商品,从而实现个性化推荐。

一、什么是 Milvus?

Milvus 是一款开源的向量数据库,用于存储、管理和检索高维向量数据。它适合构建各种 AI 场景下的向量检索系统,如推荐、图像搜索、问答系统等。

概念关系图(逻辑结构)

Milvus数据库├── Collection集合│   ├── Partition分区│   │   └── Entity实体│   │       └── Fields字段(向量 + 元数据)│   ├── Schema结构│   └── Index索引├── 查询操作(Search / Query)└── 数据一致性机制

二、Milvus 核心概念速查表

实体 Entity 示例

{  "id": 1,  "embedding": [0.1, 0.2, 0.3, ...],  "title": "iPhone",  "price": 999.0}

三、核心操作流程

四、一致性模型与数据安全保障

Milvus 提供以下一致性保证:

五、索引类型选择指南

六、进阶知识点补充

七、实战:使用 Python SDK 完整示例(基于 Milvus 2.x)

环境准备

pip install pymilvus

初始化连接

from pymilvus import connectionsconnections.connect(alias="default", host="localhost", port="19530")

创建 Collection

from pymilvus import FieldSchema, CollectionSchema, DataType, Collectionfields = [    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),    FieldSchema(name="title", dtype=DataType.VARCHAR, max_length=200),    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128)]schema = CollectionSchema(fields, description="商品向量集合")collection = Collection(name="product_vectors", schema=schema)

插入数据

import numpy as nptitles = ["iPhone", "MacBook", "AirPods"]vectors = [np.random.rand(128).tolist() for _ in range(3)]collection.insert([titles, vectors])collection.flush()

创建索引 & 加载数据

index_params = {    "index_type": "IVF_FLAT",    "metric_type": "L2",    "params": {"nlist": 128}}collection.create_index(field_name="embedding", index_params=index_params)collection.load()

向量搜索 + 条件过滤(Hybrid Search)

query_vector = [np.random.rand(128).tolist()]search_params = {"metric_type": "L2", "params": {"nprobe": 10}}results = collection.search(    data=query_vector,    anns_field="embedding",    param=search_params,    limit=5,    expr="title like 'Mac%'")for hits in results:    for hit in hits:        print(f"id: {hit.id}, distance: {hit.distance}")

八、常见踩坑提醒

九、真实应用场景参考:电商推荐系统

十、快速上手建议

✅ 推荐

❌ 避免

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Milvus 向量数据库 AI 向量检索 推荐系统
相关文章