向量数据库 Chroma 和 Milvus的使用
向量数据库(Vector Database)是专门用来存储和检索向量数据的数据库。它广泛应用于图像搜索、推荐系统、自然语言处理等领域。你给数据库一堆「特征向量」(比如图片、文本的数字表达)你问数据库「最像这个向量的有哪些?数据库快速返回「最相似」的结果名称特点语言支持适用场景Chroma轻量级、Python友好、易上手Python小项目、原型、快速开发Milvus企业级、高性能、支持多种部署方案多
一、什么是向量数据库?
向量数据库(Vector Database)是专门用来存储和检索向量数据的数据库。它广泛应用于图像搜索、推荐系统、自然语言处理等领域。
简单理解:
- 你给数据库一堆「特征向量」(比如图片、文本的数字表达)
- 你问数据库「最像这个向量的有哪些?」
- 数据库快速返回「最相似」的结果
二、Chroma 和 Milvus 简介
| 名称 | 特点 | 语言支持 | 适用场景 |
|---|---|---|---|
| Chroma | 轻量级、Python友好、易上手 | Python | 小项目、原型、快速开发 |
| Milvus | 企业级、高性能、支持多种部署方案 | 多语言(Python、Go等) | 大规模、高并发、复杂场景 |
三、环境准备
- 操作系统:Windows / Mac / Linux 都可以
- Python 版本:3.7 及以上
- 安装包管理器:pip
四、安装与配置
1 、安装 Chroma
直接安装Python库
pip install chromadb
2 、安装 Milvus
Milvus 分为两个部分:
- Milvus Server(核心数据库服务,需单独安装或用Docker运行)
- Milvus Python SDK(客户端,方便Python调用)
2.1、使用官方推荐脚本(最省心)
Milvus 官方提供的脚本会自动启用嵌入式 etcd 并正确配置启动:.
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
bash standalone_embed.sh start
2.2、验证安装
启动后查看容器状态:
docker ps
应显示 milvus_standalone 正常运行

查看日志确认 embedded etcd 启动成功,无连接错误:
docker logs milvus_standalone
启动日志无报错

测试连接端口:
nc -zv localhost 19530
成功连接表示 Milvus 已正常监听端口。

2.3、安装 Milvus Python SDK
pip install pymilvus
五、使用示例
1、Chroma 简单示例
import chromadb
# 创建客户端 - 使用新的配置方式
client = chromadb.PersistentClient(path=".chromadb/")
# 创建/获取集合 - 使用 get_or_create_collection 避免重复创建错误
collection = client.get_or_create_collection("test_collection")
# 插入向量数据
collection.add(
documents=["苹果", "香蕉", "橘子"], # 文本描述
embeddings=[[0.1, 0.2, 0.3], [0.2, 0.1, 0.4], [0.15, 0.22, 0.35]], # 对应向量(示例)
ids=["1", "2", "3"]
)
# 查询最相似向量
results = collection.query(
query_embeddings=[[0.1, 0.2, 0.31]],
n_results=1
)
print(results)
返回结果

说明:
documents是你给数据库的文本embeddings是文本的向量表示(通常由模型生成)- 查询时传入一个向量,返回最接近的n个结果
2 、Milvus 简单示例
from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection
# 连接 Milvus
connections.connect("default", host="127.0.0.1", port="19530")
# 定义集合结构
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=False),
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=3)
]
schema = CollectionSchema(fields, "test collection")
# 创建集合
collection = Collection("test_collection", schema)
# 插入数据
ids = [1, 2, 3]
embeddings = [
[0.1, 0.2, 0.3],
[0.2, 0.1, 0.4],
[0.15, 0.22, 0.35]
]
collection.insert([ids, embeddings])
# 创建索引
index_params = {
"index_type": "IVF_FLAT",
"params": {"nlist": 10},
"metric_type": "L2"
}
collection.create_index("embedding", index_params)
# 加载集合
collection.load()
# 查询向量
search_params = {"metric_type": "L2", "params": {"nprobe": 10}}
results = collection.search([[0.1, 0.2, 0.31]], "embedding", search_params, limit=2)
for result in results[0]:
print(f"id: {result.id}, distance: {result.distance}")
运行结果

六、总结
| 功能 | Chroma | Milvus |
|---|---|---|
| 安装 | 纯Python库,简单快速 | 需要运行服务,推荐Docker部署 |
| 适合项目规模 | 小型、开发测试 | 大规模、生产环境 |
| 语言支持 | Python优先 | 多语言支持 |
| 性能 | 适中 | 高性能,支持分布式 |
如何学习大模型?
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

😝有需要的小伙伴,可以扫描下方二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)