MongoDB Atlas 是一个完全托管的云数据库,支持 AWS、Azure 和 GCP。它原生支持向量搜索、全文搜索(BM25)和混合搜索,可基于您的 MongoDB 文档数据。
MongoDBAtlasHybridSearchRetriever 结合向量搜索和全文搜索,使用 reciprocity rank fusion(RRF)算法从 Atlas 集合返回最相关的文档。若无需向量索引,MongoDBAtlasFullTextSearchRetriever 使用 Atlas 搜索的 Lucene(BM25)分析器进行关键词检索。
所有检索器都继承自 BaseRetriever 并包含在 langchain-mongodb 包中。您可将 MongoDB Atlas 向量存储 强转为 .as_retriever()。当需要混合搜索或纯全文搜索时,建议使用专用检索器类。
本指南帮助您入门 MongoDB Atlas 检索器。所有 MongoDBAtlasHybridSearchRetriever 功能和配置的详细文档,请参考 API 参考。
整合细节
您需要一个已启用 Atlas 搜索的运行中 MongoDB Atlas 集群。若无,请通过 Atlas 控制台 创建集群。
MongoDBAtlasHybridSearchRetriever 需要 target 集合上两个搜索索引:
- 一个 向量搜索索引 用于语义召回
- 一个 全文搜索索引 用于关键词召回
请参考下方 创建索引 或在 Atlas 控制台手动创建索引。
若需启用查询级自动追踪,请设置您的 LangSmith API 密钥:
安装 langchain-mongodb。以下示例也使用了 Voyage AI 嵌入模型:
设置 Atlas 连接字符串并打开集合句柄:
创建索引
在启用混合搜索前,需为集合创建向量搜索索引和全文搜索索引。匹配 dimensions 与嵌入模型(voyage-4-lite 使用 1024 维度):
更多索引选项请参考 MongoDB Atlas 向量存储 指南。
实例化
混合搜索
MongoDBAtlasHybridSearchRetriever 通过 RRF 融合向量与关键词结果。增加 vector_penalty 或 fulltext_penalty 可降低该渠道权重:
全文搜索
MongoDBAtlasFullTextSearchRetriever 执行 BM25 关键词搜索且无需向量索引:
在链中调用
API 参考
所有 MongoDBAtlasHybridSearchRetriever 功能和配置的详细文档,请参考 API 参考。
全文搜索请参考 MongoDBAtlasFullTextSearchRetriever。
官方原文:src/oss/python/integrations/retrievers/mongodb_atlas.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026