学习总结
本快速入门重点介绍从集群中检索包含与所提供的查询在语义上相关的文本的文档。但是,您可以在嵌入上创建向量搜索索引,表示您可能写入集群的任何类型的数据,例如图像或视频。
样本数据
本快速入门使用 sample_mflix.embedded_movies
集合,其中包含有关电影的详细信息。在集合的每个文档中,plot_embedding_voyage_3_large
字段包含一个向量嵌入,表示 plot
字段中的字符串。 有关集合中文档模式的详细信息,请参阅 样本 Mflix 数据集。
通过将源数据及其相应的向量嵌入存储在同一个文档中,您可以利用这两个字段进行复杂查询或混合搜索。您甚至可以将不同嵌入模型生成的向量嵌入存储在同一个文档中,以便在针对特定用例测试不同向量嵌入模型的性能时简化工作流程。
向量嵌入
sample_mflix.embedded_movies
集合和示例查询中的向量嵌入是使用 Voyage AI voyage-3-large
嵌入模型创建的。您选择的嵌入模型决定了您在向量搜索索引中使用的向量维度和向量相似度函数。您可以使用任何您喜欢的嵌入模型,并值得尝试不同模型,因为根据您的具体应用场景,不同模型的准确性可能有所不同。
要了解如何创建您自己数据的向量嵌入,请参阅如何创建向量嵌入。
向量索引定义
索引是一种数据结构,用于保存集合文档中的数据子集,从而提高特定查询的数据库性能。向量搜索索引指向包含向量嵌入的字段,其中包括向量的维度以及用于衡量查询向量与数据库存储向量之间相似性的函数。
由于本快速入门中使用的 voyage-3-large
嵌入模型会将数据转换为具有 2048 维度的向量嵌入并支持 cosine
函数,因此该向量搜索索引指定了相同数量的向量维度和相似度函数。
Vector Search 查询
您在快速入门中运行的查询是一个聚合管道,其中 $vectorSearch
阶段执行近似近邻 (ANN) 搜索,随后 $project
阶段对结果进行细化。要查看向量搜索查询的所有选项,包括使用 精确近邻 (ENN) 或如何使用 filter
选项缩小向量搜索范围,请参阅 运行向量搜索查询。
后续步骤
要了解如何从数据创建嵌入并将其加载到 Atlas 中,请参阅创建嵌入。
要学习;了解如何实现检索增强生成 (RAG),请参阅使用MongoDB检索增强生成 (RAG)。
要将MongoDB Vector Search 与常用的AI框架和服务集成,请参阅将MongoDB与AI技术集成。
要使用MongoDB Vector Search构建可投入生产的AI聊天机器人,请参阅MongoDB聊天机器人框架。
要学习;了解如何在不需要 API 密钥或信用的情况下实现 RAG ,请参阅 使用MongoDB Vector Search 构建本地 RAG 实施。