“文档” 菜单
文档首页
/
MongoDB 阿特拉斯
/ /

创建 Atlas Search 索引

在此页面上

  • 先决条件
  • 必需的访问权限
  • 创建 Atlas Search 索引
  • 节点状态

Atlas Search 索引是一种数据结构,它以易于搜索的格式对数据进行分类。它是术语与包含这些术语的文档之间的映射。 Atlas Search 索引可以使用某些标识符更快地检索文档。您必须配置 Atlas Search 索引,才能使用 Atlas Search 查询 Atlas 集群中的数据。

您可在单个字段或多个字段上创建 Atlas Search 索引。我们建议您对经常用于排序或筛选数据的字段建立索引,以便在查询时快速检索包含相关数据的文档。

您可以通过 Atlas UI、APIAtlas CLITerraform 为 Atlas 集群上除 时间序列集合之外的所有集合创建 Atlas Search 索引。

重要

如果您使用 $out 聚合阶段修改具有 Atlas Search 索引的集合,则必须删除并重新创建搜索索引。如果可能,请考虑使用 $merge,而不是 $out

要创建 Atlas Search 索引,您必须拥有符合以下条件的 Atlas 集群:

  • 任何集群层上的 MongoDB 4.2或更高版本。

    注意

    您创建的内容不能超过:

    • M0 集群上具有 3 个索引。

    • M2 集群上有 5 个索引。

    • M5 集群上有 10 个索引。

    您可以在 M10+ 集群上创建的索引数量没有限制。

  • 要为其创建 Atlas Search 索引的集合。

下表列出了每个角色支持的访问模式。

角色
操作
Atlas 用户界面
Atlas API
Atlas Search API
Atlas
Project Data Access Read Only 或更高级别的角色
用于查看 Atlas Search 分析器和索引。
Project Data Access Admin 或更高级别的角色
创建和管理 Atlas Search 分析器和索引,并将角色分配给 API 密钥。
为 API 密钥创建访问列表条目,并从 API 密钥访问列表中显示的客户端发送请求。
使用 Atlas 用户界面或 API 创建、查看、编辑和删除 Atlas Search 索引。

您必须至少拥有要创建索引的数据库的readWriteAnyDatabase角色或readWrite访问权限。要了解详情,请参阅内置角色特定特权。

您可以使用 Atlas 用户界面、MongoDB Compass 来创建 Atlas Search 索引,也可以使用mongosh 、Atlas CLI、 API 或受支持的 MongoDB 驱动程序以您的首选语言以编程方式创建 Atlas Search 索引。

注意

您不能使用mongosh命令或驱动程序助手方法在M0M2M5 Atlas 集群上创建 Atlas Search 索引。要使用mongosh或驱动程序创建和管理 Atlas Search 索引,请升级到专用集群层。


➤ 使用选择语言下拉菜单设置本节中示例的语言。


创建 Atlas Search 索引时,Atlas UI 右侧面板中的 Atlas Search Indexes(Atlas Search 索引)标签页会显示有关选定命名空间的 Atlas Search 索引的信息。Status 列显示集群主节点上索引的当前状态。单击状态下方的 View status details 链接可查看集群所有节点上索引的状态。

Atlas Search 索引信息面板的屏幕截图
点击放大

Status 列显示为 Active时,索引已准备就绪,可供使用。在其他状态下,对索引的查询可能会返回不完整的结果。

状态
说明
未启动
Atlas 尚未开始构建索引。
初始化同步(Resumable Initial Sync)

Atlas 正在构建索引或在编辑后重新构建索引。当该索引处于以下状态时:

  • 对于新索引,Atlas Search 在索引构建完成之前不会提供服务查询。

  • 对于现有索引,可继续使用旧索引进行现有查询和新查询,直到索引重建完成。

活跃的
索引已准备就绪。
正在恢复
复制遇到错误。当当前复制点在mongod oplog 上不再可用时,通常会出现此状态。您仍然可以查询现有索引,直到它更新并且其状态变为Active 。使用View status details模式窗口中的错误来解决问题。要了解更多信息,请参阅修复 Atlas Search 问题。
已失败
Atlas 无法构建索引。使用 View status details(查看状态详细信息)模式窗口中的错误来解决问题。要了解更多信息,请参阅修复 Atlas Search 问题。
正在删除
Atlas 正在从集群节点中删除索引。

当 Atlas 构建索引时以及构建完成后,Documents 列会显示已完成索引的文档的百分比和数量。该列还会显示集合中的文档总数。

警告

如果您对已具有 Atlas Search 索引的集合进行分片,当该集合开始出现在分片上时,您可能会遇到短暂的查询停机时间。此外,如果您为包含 Atlas Search 索引的已分片集合添加分片,针对该集合的搜索查询将失败,直到添加的分片完成初始同步过程为止。要了解更多信息,请参阅初始同步进程。

← 创建和管理索引