Docs 菜单
Docs 主页
/
MongoDB 阿特拉斯
/

创建和管理 Atlas Search 索引

在此页面上

  • 支持的客户端
  • 后续步骤

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

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

您可以使用以下方法指定要进行索引的字段:

  • 动态映射,使 Atlas Search 能够自动索引每个文档中受支持类型的所有字段。这可能会浪费磁盘空间来索引您永远不会搜索的字段,并对集群性能产生负面影响。

  • 静态映射,可让您有选择地确定要索引的字段。如果字段包含多态数据,Atlas Search 仅对与索引定义中的映射相对应的文档进行索引编制,并忽略包含如下值的文档:与字段的索引定义中指定的映射不对应的值。

尽管 Atlas Search 上存储的数据与 Atlas 集群上的集合中的数据副本不同,但 Atlas Search 索引仍会占用部分磁盘空间和内存。如果您为包含字符串值的字段启用 store选项,或者如果您在索引中配置存储的源字段,Atlas Search 则会在磁盘上存储指定字段的相同副本,而这可能会占用磁盘空间。

注意

Atlas Search 不支持使用 Atlas 用户界面中的 Customer Key Management(客户密钥管理)通过加密密钥对 Atlas Search 索引进行加密。

Atlas Search 提供内置分析器,用于创建可索引术语,纠正标点符号、大写、停用词等方面的差异。分析器会在查询中应用解析规则和语言规则。您还可以使用可用的内置字符筛选器、分词器和令牌筛选器创建自定义分析器。要了解有关内置和自定义分析器的更多信息,请参阅使用分析器处理数据

要进一步了解 Atlas Search 对其他数据类型的支持情况,请参阅数据类型mongot 进程在磁盘上按索引存储集群上集合的索引字段和 _id 字段。

如果您对为其定义 Atlas Search 索引的集合进行更改,最新数据可能无法立即用于查询。但是,mongot 会监控变更流,使其能够更新存储的数据副本,Atlas Search 索引最终也会保持一致。

当您更改索引定义时, mongot会在后台自动重建新索引,同时继续使用旧索引为查询提供服务,以确保不会停机。当您在同一节点上部署mongotmongod进程以及将进程部署在不同节点上时,会发生这种情况。

如果您更改搜索部署的拓扑结构,Atlas Search 会在删除旧节点之前在任何新节点上预配并构建索引,以确保查询不会停机。

如果mongodmongot进程在同一节点上运行的部署,则当 Atlas Search 引入需要重建索引的更改时(例如,某些 Atlas Search 功能需要更新索引),Atlas 会自动免费部署额外节点构建索引,而旧节点继续为您的查询提供服务。

注意

对于专用搜索节点

添加和调整分片会触发 Atlas Search 索引的重建。在此索引重建期间,索引可能没有最新数据。因此,对这些分片上的数据进行查询可能会失败或返回不正确的结果。

如果您对包含Atlas Search 索引的集合进行重新分片,则在重新分片操作完成后,该集合上的 Atlas Search 索引将变为不可用。重新分片操作完成后,您必须删除并创建新的 Atlas Search 索引。

喜欢通过观看视频来学习?

观看此视频,了解关于 Atlas Search 索引的概要信息。在此视频中,您可以了解有关分析器和 Atlas Search 自动完成字段类型的更多信息。

时长:8 分钟

您可以通过 Atlas 用户界面、Atlas Search API、Atlas CLI、 mongosh 、MongoDB Compass 和MongoDB 驱动程序创建和管理 Atlas Search 索引。

要使用 Atlas CLI 创建和管理 Atlas Search 索引,您的 Atlas 集群必须运行 MongoDB 6.0+ 或 7.0+。

要使用 mongoshM10 及更高版本的 Atlas 集群上创建和管理 Atlas Search 索引,您的 Atlas 集群必须运行 MongoDB 6.0+ 或 7.0+。无法使用 mongosh 命令在 M0M2M5 Atlas 集群上创建和管理 Atlas Search 索引。

要在M10及更高版本的 Atlas 集群上使用Compass创建和管理 Atlas Search 索引,您的 Atlas 集群必须运行 MongoDB 7.0 +。 您无法使用CompassM0M2M5 Atlas 集群上创建和管理 Atlas Search 索引。

要在M10及更高版本的 Atlas 集群上以编程方式创建和管理 Atlas Search 索引,您可以使用以下任一MongoDB 驱动程序:

MongoDB 驱动程序
版本
1.25.0 或更高版本
3.9.0 或更高版本
2.21.0 或更高版本
1.13.0, 1.13.1 或更高版本
4.11.0 或更高版本
5.6.0 或更高版本
1.17.0 或更高版本
4.5 或更高版本
2.19.2 或更高版本
2.8.0 或更高版本

您无法使用MongoDB 驱动程序辅助方法在M0M2M5 Atlas 集群上创建和管理 Atlas Search 索引。

要了解如何创建 Atlas Search 索引,请参阅创建 Atlas Search 索引。如需亲身体验为样本数据集创建 Atlas Search 索引以及对索引数据运行 Atlas Search 查询,请尝试以下页面中的教程:

后退

混合搜索

来年

创建搜索索引