Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

Atlas Vector Search 概述

在此页面上

  • 什么是向量搜索?
  • 关键概念
  • Atlas Vector Search 索引
  • Atlas Vector Search 查询
  • 用例
  • AI 集成

您可以使用 Atlas Vector Search 对 Atlas 中的数据执行矢量搜索。在集合上定义 Atlas Vector Search 索引时,您可以无缝地将矢量数据与其他数据一起编制索引,然后对索引字段执行矢量搜索查询。

Atlas Vector Search 支持各种搜索使用案例,包括语义搜索、混合搜索和生成搜索。通过将向量嵌入与其他数据一起存储在 Atlas 中,您可以筛选集合中其他字段的语义搜索查询,并将语义搜索与全文搜索相结合。此外,您可以在 AI应用程序中利用 Atlas Vector Search,并将其与流行的AI框架和服务集成。

运行 MongoDB 6版本的 Atlas 集群支持 Atlas Vector Search。 0 。 11 、 7 。 0 。 2或更高版本。

Atlas Vector Search 入门

注意

为了获得最佳性能,我们建议部署单独的搜索节点以进行工作负载隔离。搜索节点支持并发查询执行,以改善单个查询延迟。要了解详情,请参阅查看部署选项。

向量搜索是一种根据数据语义或潜在含义返回结果的搜索方法。与查找文本匹配的传统全文搜索不同,向量搜索在多维空间中查找与搜索查询接近的向量。向量越接近您的查询,它们的含义就越相似。

通过解释搜索查询和数据的含义,矢量搜索允许您考虑搜索者的意图和搜索上下文,以检索更相关的结果。

例如,如果您搜索“红色水果”一词,全文搜索仅返回明确包含这些关键字的数据。但是,语义搜索可能会返回含义相似的数据,例如苹果或草莓等红色水果。

载体

向量是一个数字数组,以多个维度表示数据。向量可以表示任何类型的数据,从文本、图像和音频数据到非结构化数据。语义相似度是通过测量向量之间的距离来确定的。

具体来说,Atlas Vector Search 使用密集向量,密集向量是一种高维向量,有利于较小的存储和丰富的语义。与稀疏向量不同,密集向量可以容纳更多数据,这使得 Atlas Vector Search 能够捕获更复杂的关系。

向量嵌入

向量嵌入或向量化是将数据转换为向量的过程。您可以通过将数据传递到嵌入模型来创建这些嵌入,并将这些嵌入作为字段存储在 Atlas 集合中。

Atlas Vector Search 通过识别与查询向量距离最近的向量嵌入来确定语义相似度。要了解更多信息,请参阅Atlas Vector Search 查询。

嵌入模型

嵌入模型是将复杂数据转换为向量的算法。为此,嵌入模型使用LLM (在大型数据集上训练的机器学习模型)来生成封装数据语义的向量嵌入。

这些嵌入使 Atlas Vector Search 能够更好地理解数据中的关系并执行语义搜索和检索等任务。根据您的数据和任务, 不同的嵌入模型 提供不同的优势。

要对 Atlas 中的数据执行矢量搜索,您必须创建 Atlas Vector Search 索引。 Atlas Vector Search 索引与其他数据库索引分开,用于在查询时高效地检索包含向量嵌入的文档。在 Atlas Vector Search 索引定义中,您可以对集合中包含嵌入的字段进行索引,以启用针对这些字段的向量搜索。 Atlas Vector Search 支持宽度小于或等于4096维度的嵌入。

您还可以对集合中要运行 Atlas Vector Search 查询的任何布尔值、字符串和数字字段建立索引,以对数据进行预过滤。筛选数据可缩小搜索范围,并确保某些向量嵌入不会被考虑进行比较。

要了解如何为 Atlas Vector Search 编制字段索引,请参阅如何为 Vector Search 编制字段索引。

Atlas Vector Search 支持使用 Hierarchical Navigable Small Worlds 进行近似最近邻 ( ANN ) 搜索 算法。 人工神经网络 通过逼近多维空间中最相似的向量来优化速度,而无需扫描每个向量。这种方法对于从大型矢量数据集中检索数据特别有用。

Atlas Vector Search 查询由聚合管道阶段组成,其中 $vectorSearch阶段是管道中的第一个阶段。基本 Atlas Vector Search 查询的过程如下:

  1. 您可以指定查询向量,它是表示搜索查询的向量嵌入。

  2. Atlas Vector Search 使用ANN搜索来查找数据中与查询向量最接近的向量嵌入。

  3. Atlas Vector Search 返回包含最相似向量的文档。

要自定义向量搜索查询,您可以使用带有受支持的 比较聚合操作符 的 MQL 匹配表达式对已建立索引的字段数据进行预筛选,也可以添加其他 聚合阶段 以进一步处理和组织结果。

要了解如何创建和运行 Atlas Vector Search 查询,请参阅运行向量搜索查询。

Atlas Vector Search 支持以下类型的矢量搜索查询:

通过将 Atlas 用作矢量数据库,您可以使用 Atlas Vector Search 来构建自然语言处理 (NLP)、机器学习 (ML) 和生成式AI应用程序。

具体来说,您可以通过以下方式实施检索增强生成 (RAG) :在 Atlas 中存储数据,使用 Atlas Vector Search 从数据中检索相关文档,并利用法学硕士回答有关数据的问题。您可以在本地实施RAG ,也可以Atlas Vector Search 与常用框架和服务集成来实施。要了解更多信息,请参阅AI 关键概念。

您可以将 Atlas Vector Search 与 OpenAI、 AWS 和 Google 等 AI 提供商提供的流行聊天和嵌入模型结合使用。 MongoDB 和合作伙伴还提供特定的产品集成,帮助您在生成式 AI AI 驱动的应用程序中利用 Atlas Vector Search。这些集成包括内置工具和库,使您能够自始至终构建应用程序和实施 RAG

例如,通过将 Atlas Vector Search 与 LangChain 等开源框架集成 和 LlamaIndex ,您可以在热门的 LLM 基础上回答有关您数据的问题。

要了解更多信息并开始使用,请参阅将向量搜索与 AI 技术集成。

← Atlas 搜索更新日志