核心功能
Atlas Vector Search 是 MongoDB Atlas 托管服务的一项功能,用 $vectorSearch 聚合阶段在集合上做近邻检索,向量与业务文档同库,适合在既有 MongoDB 应用上直接接入 RAG 与语义搜索。
功能亮点
同库检索
向量与业务文档同集合存储,无需另建独立向量库与管理系统
聚合串联
向量检索后可串 $project、$lookup 等聚合阶段
可调召回
exact 设 false 走近似,靠 numCandidates 调召回
预过滤
把布尔、数值等字段声明为 filter 先缩范围再检索
适用场景
• 在既有 MongoDB 应用上直接加向量检索,支撑 RAG。
• 用向量近邻做相似文档、推荐内容召回。
• 结合聚合管道,向量检索后继续做业务加工。
安装配置
bash
控制台操作步骤(无 CLI 安装命令,以下为操作指引): 1. 注册 Atlas 账号并创建 M0 免费集群 2. 为账号或 API 密钥授予向量检索所需权限 3. 加载样例数据(如 sample_mflix) 4. 在集合的 Search 与 Vector Search 入口新建索引 5. 用 mongosh 执行下方「用法」中的 createSearchIndex 创建向量索引
使用方法
bash
创建向量索引定义:
{
"fields": [
{
"type": "vector",
"path": "<field>",
"numDimensions": 3,
"similarity": "euclidean",
"quantization": "none"
},
{
"type": "filter",
"path": "<field>"
}
]
}
用 mongosh 创建(auto-embedding 用例可加相应配置):
db.movies.createSearchIndex("idx", "vectorSearch", { ... })
聚合管道查询:
db.movies.aggregate([
{
$vectorSearch: {
index: "idx",
path: "plot_embedding",
queryVector: [0.1, 0.2, 0.3],
numCandidates: 100,
limit: 10
}
},
{
$project: {
title: 1,
score: { $meta: "vectorSearchScore" }
}
}
])关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标MongoDB Atlas Vector Search
价格免费增值
开源否
上手难度进阶
相关工具
优点
- 向量与业务数据同库同集合,免去数据同步。
- 作为 Atlas 托管功能,无需自建与运维向量服务。
- 支持 euclidean/cosine/dotProduct 与量化压缩。
- M0 免费集群可用,入门成本低。
缺点
- 仅限 Atlas 托管环境,无法在自建 MongoDB 使用。
- $vectorSearch 须为管道首个阶段,不能接在 $lookup 子查询后。
- 单次查询 numCandidates 上限为 10000,影响大候选召回。
- 免费层最多 3 个索引,Flex 层最多 10 个索引。