提高准确性
如何提高搜索结果的准确性?
为了提高搜索结果的准确性,您可以使用Atlas Search对以下功能的支持。
自定义乐谱
Atlas Search根据相关性为结果设立的每个文档分配一个分数,并按从最高分到最低分的顺序返回结果。要学习;了解详情,请参阅 对结果中的文档进行评分。
运行Atlas Search查询时,您可以调整结果中文档的相关性,以确保最相关的文档在结果中排名靠前并返回。
要学习;了解更多信息,请参阅如何自定义结果中文档的分数。
混合搜索
混合搜索将全文搜索和语义搜索相结合,确保针对同一查询中的相同条件,两种搜索方法的组合结果中包含同义匹配和上下文相似的匹配。
在以下场景中使用混合搜索:
使用Atlas Search (全文搜索)来处理关键字查询,并通过测量关键字在文档中以及集合中的文档中出现的频率,根据相关性对文档进行排名。
使用Atlas Vector Search (语义搜索)检索语义相似的文档。
结合两种搜索方法的分数,检索更准确、更相关的结果。
如要了解更多信息,请参阅如何执行混合搜索。
同义词搜索
即使您搜索的文档中不存在确切的关键字,同义词搜索也可确保您的查询结果包含相关结果。
执行同义词搜索时,可以使用在查询时创建和应用的索引和应用的同义词映射集合。
要了解更多信息,请参阅在 Atlas Search 索引中定义同义词映射。
解释您的搜索
MongoDB explain
提供有关查询如何执行以及某些文档返回值高于其他文档的原因的信息。
在查询中使用 explain
的原因如下:
了解Atlas Search如何计算搜索查询的分数,以及影响结果中文档相关性的因素。
根据搜索和排名的性能改进索引和查询。
要学习;了解详情,请参阅如何检索查询计划和执行统计信息。
如何提高搜索结果的相关性?
您可以调整Atlas Search中的相关性,以确保在Atlas Search查询结果中返回更相关的文档。请考虑以下因素来优化Atlas Search结果的相关性。
评估您的数据
要构建和格式化数据以返回最佳搜索结果,请执行以下操作:
查看文档的模式以确定要索引的字段。对于多态数据, Atlas Search仅索引与该字段的索引定义中指定的映射相对应的文档,并忽略包含不属于该字段的索引定义中指定的数据类型的值的文档。要学习;了解有关支持的字段类型和字段映射的更多信息,请参阅定义字段映射。
如果需要,对数据进行规范化,以确保筛选和排序中使用的字段的一致性。示例,将日期和时间值转换为标准格式,例如 ISO-8601。
分析关键字段中常用术语的频率,以确定要应用的分析器和分词策略。示例,某些术语可能需要特殊处理,例如词干提取或同义词映射。要学习;了解有关使用Atlas Search分析器为数据创建词元的更多信息,请参阅使用分析器处理数据。
分析数据量并规划扩展。大型数据集可能需要战略性索引和分区。
配置Atlas Search索引
要配置Atlas Search索引以返回最佳搜索结果,请执行以下操作:
为要索引的每个字段选择适当的分析器。分析器将筛选器与分词器相结合,创建可索引术语,从而纠正标点符号、大小写、填充词等方面的差异。您可以选择内置分析器或构建自定义分析器。要学习;了解更多信息,请参阅使用分析器处理数据。
创建源同义词集合并定义同义词映射,以引用Atlas Search索引中的同义词源集合。您可以使用同义词来扩大搜索范围并在结果中返回相关术语。要学习;了解更多信息,请参阅在Atlas Search索引中定义同义词映射。
定义Atlas Search查询
要构建查询以返回最佳结果,请执行以下操作:
先决条件
要完成这些教程,您必须具备:
运行 MongoDB 4.2 或更高版本的 Atlas 集群。
示例数据已加载到您的 Atlas 集群中。
Project Data Access Admin
或更高访问权限Atlas以创建Atlas Search项目。Search Tester、 、
mongosh
、 Compass或受支持的MongoDB驱动程序,用于在集群上运行查询。
注意
您可以在$search
聚合阶段使用任何驾驶员来运行Atlas Search查询。这些教程包括精选客户端的示例。有关详细信息,请参阅特定教程页面。
还可以通过使用 Atlas CLI 创建的本地 Atlas 部署来完成这些教程。要了解详情,请参阅创建本地 Atlas 部署。