对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

MongoDB搜索概述

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

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

开始使用MongoDB Search

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

  • 键入时搜索:要在用户在应用程序的搜索字段中输入字符时更加准确地预测单词,可以使用MongoDB Search autocomplete操作符来预测并返回部分单词的结果。要学习;了解更多信息,请参阅如何运行自动完成和部分匹配MongoDB搜索查询。

  • 分面搜索:为启用应用程序的用户能够通过使用筛选器缩小搜索结果的范围,您可以使用MongoDB Search facet(MongoDB搜索运算符)收集器构建分面,按分面字段中的值或范围对结果群组。要学习;了解更多信息,请参阅如何在MongoDB Search 中使用分面。

  • 分页结果:要对结果页面群组并实现“下一页”和“上一个”等功能,可以使用MongoDB Search searchSequenceToken with searchAftersearchBefore 选项来按顺序遍历页面并跨页面跳转。要学习;了解详情,请参阅如何对结果进行分页。

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

搜索查询查阅搜索索引以返回一设立结果。搜索查询不同于传统的数据库查询,因为它们可以满足更一般的信息需求。如果数据库查询必须遵循严格的语法,则可以使用搜索查询进行简单的文本匹配。您还可以搜索相似的短语、数字或日期范围以及正则表达式或通配符。

MongoDB Search queries take the form of an aggregation pipeline stage. MongoDB Search provides $search and $searchMeta stages, which you can use with other aggregation pipeline stages in your query pipeline. MongoDB Search provides query operators and collectors that you can use inside these aggregation pipeline stages.

要了解详情,请参阅查询和索引。

在搜索方面,索引是一种数据结构,它以易于搜索的格式对数据进行分类。搜索索引启用更快地检索包含给定术语的文档,而无需扫描整个集合。虽然MongoDB Search索引和MongoDB索引都可以加快数据检索速度,但它们有所不同。就像书本后面的索引一样,搜索索引是术语与包含这些术语的文档之间的映射。搜索索引还包含其他相关元数据,例如词语在文档中的位置。

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

要学习;了解更多信息,请参阅支持的客户端。

当您创建搜索索引时, Atlas Search会将您的数据转换为一系列词元术语分析器通过以下步骤促进此进程:

  • 标记化:将 string 中的单词分解为可索引的标记。例如,按照空格和标点分割句子。

  • 规范化:组织数据以一致的表示形式和更轻松的分析,例如将文本转换为小写或删除称为停用词的不需要的单词。

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

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

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

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

查询结果中的每个文档都会收到一个相关性分数,该分数将结果从最高相关性到最低相关性进行排序。在最简单的评分形式中,如果查询术语在文档中频繁出现,则文档得分较高;如果查询术语出现在集合中的许多文档中,则文档得分较低。您还可以通过提高、降低或修改基于相关性的默认分数来自定义评分,从而根据特定领域定制搜索。

要了解详情,请参阅评分文档。

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