Docs 菜单

Atlas Search 概述

Atlas Search是一种嵌入式全文搜索,可为构建基于相关性的应用功能提供无缝、可扩展的体验,并且无需在运行数据库的同时运行单独的搜索系统。

您可以使用Atlas Search对集群上的数据进行细粒度文本索引和数据查询。 Atlas Search提供多种 文本分析器、用于创建复杂搜索逻辑的丰富查询语言、可自定义的基于分数的结果排名以及适用于应用程序的高级搜索功能(如自动完成、分页和分面)。

开始使用 Atlas Search

Atlas Search支持多种使用案例,包括:

以下概念构成了 Atlas Search 的基础,对于优化您的应用程序至关重要。

搜索查询查阅搜索索引以返回一设立结果。搜索查询与传统的数据库查询不同,它们旨在满足更一般的信息需求。在数据库查询必须遵循严格语法的情况下,搜索查询可用于简单的文本匹配,但也可以查找相似的短语、数字或日期范围,或者使用正则表达式或通配符。

Atlas Search查询采用 聚合管道阶段的形式。 Atlas Search提供$search$searchMeta阶段,可与查询管道中的其他聚合管道阶段结合使用。 Atlas Search提供了可在这些聚合管道阶段中使用的查询操作符收集器

要学习;了解更多信息,请参阅查询和索引。

在搜索环境中,索引是一种数据结构,以便于搜索的格式对数据进行分类。使用搜索索引,可以更快地检索包含特定术语的文档,而不必扫描整个集合。尽管 Atlas Search 索引和 MongoDB 索引都能加速数据检索,但它们并不相同。就像书本后面的索引一样,搜索索引是术语与包含术语的文档之间的映射。搜索索引还包含其他相关的元数据,例如术语在文档中出现的位置信息。

您可以使用静态映射在单个字段或多个字段上创建Atlas Search索引。或者,您可以启用动态映射以自动索引文档中所有可动态索引的字段。您可以在多态数据和嵌入式文档上创建Atlas Search索引,也可以为特定使用案例(例如“键入时搜索”或“分面搜索”)创建 Atlas Search 索引。

要学习;了解更多信息,请参阅管理Atlas Search索引。

创建搜索索引时,必须首先将数据转换为词元术语序列。分析器通过以下步骤来简化此过程,包括:

  • 标记化:将字符串中的单词分解为可索引的标记。例如用空格和标点符号划分句子。

  • 规范化:整理数据,使其呈现方式一致且更易于分析。例如,将文本转换为小写或删除称为停用词的不需要的词。

  • 词干提取:将单词简化为其词根形式。例如,忽略后缀、前缀和复数形式。

分词的细节因语言而异,可能需要做出额外的选择。使用哪种分析器取决于您的数据和应用程序。

Atlas Search提供了一些内置分析器。您还可以创建自己的自定义分析器。您可以使用分析器指定备用分析器。

要了解更多信息,请参阅使用分析器处理数据

查询结果中的每个文档都会收到一个相关性分数,这使得查询结果能够按从最高相关性到最低相关性的顺序返回。在最简单的评分形式中,如果查询术语在文档中频繁出现,则文档得分较高;如果查询术语出现在集合中的许多文档中,则文档得分较低。评分也可以自定义。为特定领域定制搜索通常意味着通过提高、降低或以其他方式修改基于相关性的默认分数来自定义分数。

要学习;了解更多信息,请参阅对文档进行评分。

要亲身体验创建Atlas Search索引和对示例数据运行Atlas Search查询,请尝试Atlas Search快速入门。