Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

如何对 Atlas 集群中的数据执行语义搜索

在此页面上

  • 先决条件
  • 创建 Atlas Vector Search 索引
  • 必需的访问权限
  • 步骤
  • 使用 $vectorSearch聚合管道阶段运行查询
  • 概述
  • 步骤

本教程介绍如何对 Atlas 集群上的 collection 中的 字段中的向量执行 ANN 搜索。plot_embeddingssample_mflix.embedded_movies为了演示这一点,它将带您完成以下步骤:

  1. sample_mflix.embedded_movies集合中名为plot_embeddings的数字字段上创建 Atlas Vector Search 索引。

  2. 针对sample_mflix.embedded_movies集合中的plot_embeddings字段运行 Atlas Vector Search 查询。

要完成本教程,您必须具备以下条件:

  • 运行 MongoDB 版本 6.0.11、v7.0.2 或更高版本(包括RC )的 Atlas 集群。

  • 示例数据已加载到您的 Atlas 集群中。

  • 用于在 Atlas 集群上运行查询的以下应用程序之一:

    • mongosh

    • Java

    • MongoDB 节点驱动程序

    • pymongo

    您还可以将 Atlas Vector Search 与通过 Atlas CLI 创建的本地 Atlas 部署结合使用。要了解更多信息,请参阅创建本地 Atlas 部署。

本部分演示如何在sample_mflix.embedded_moviescollection中的plot_embeddings字段上创建 Atlas Vector Search 索引,以便对该字段运行查询。

要创建 Atlas Vector Search 索引,您必须对项目具有Project Data Access Admin或更高访问权限。

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2
  1. 单击集群的名称。

  2. 单击 Atlas Search 标签页。

3
  1. 单击 Create Search Index(连接)。

  2. Atlas Vector Search下,选择JSON Editor ,然后单击Next

  3. Database and Collection(数据库和集合)部分中找到 sample_mflix 数据库,然后选择 embedded_movies 集合。

  4. Index Name 字段中输入 vector-search-tutorial

  5. 将默认定义替换为以下索引定义,然后单击Next

4
  1. 将默认定义替换为以下索引定义。

    此索引定义指定在vectorSearch类型的索引中对以下字段建立索引:

    • plot_embedding 字段作为向量类型。 plot_embedding字段包含使用 OpenAI 的text-embedding-ada-002嵌入模型创建的嵌入。 索引定义指定了1536向量维度,并使用euclidean来衡量相似性。

    • genres 字段作为筛选器类型,用于按字段中的字符串值对数据进行预筛选。

    • year 字段作为筛选器类型,用于按字段中的数值对数据进行预筛选。

    1{
    2 "fields": [
    3 {
    4 "type": "vector",
    5 "path": "plot_embedding",
    6 "numDimensions": 1536,
    7 "similarity": "euclidean"
    8 },
    9 {
    10 "type": "filter",
    11 "path": "genres"
    12 },
    13 {
    14 "type": "filter",
    15 "path": "year"
    16 }
    17 ]
    18}
5

此时将显示一个模态窗口,让您知道索引正在构建中。

6

构建索引大约需要一分钟时间。在构建时, Status列显示为Initial Sync 。构建完成后, Status列显示为Active


➤ 使用选择语言下拉菜单选择要用于运行本节中示例查询的客户端。


本部分演示如何使用$vectorSearch阶段查询sample_mflix.embedded_movies集合中的索引向量数据。这些样本查询还演示了各种比较查询聚合管道操作符,我们可以在查询中使用它们来预筛选要执行语义搜索的数据。

← Atlas Vector Search 教程