Overview
在本指南中,您可以学习;了解如何使用Kotlin Sync驾驶员对集合运行Atlas Search查询。Atlas Search使您能够对MongoDB Atlas上托管的集合执行全文搜索。Atlas Search索引指定搜索行为以及要索引的字段。
样本数据
本指南中的示例使用Atlas示例数据集的 sample_mflix
数据库中的 movies
集合。要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅Atlas入门指南。要学习;了解有关聚合操作和构建者的更多信息,请参阅 聚合操作指南。
运行 Atlas Search 查询
本节将介绍如何创建聚合管道以在集合上运行 Atlas Search 查询。您可以使用 Aggregates.search()
构建器方法来创建 $search
管道阶段,该阶段指定搜索条件。然后,调用 aggregate()
方法,并将您的管道作为参数传递。
注意
仅适用于 Atlas for MongoDB v4.2 及更高版本
此聚合管道操作符仅适用于在运行v4.2 或更高版本的MongoDB Atlas集群上托管且由Atlas Search索引覆盖的集合。从Atlas Search文档了解详情有关此操作符所需设置和功能的更多信息。
在运行Atlas Search查询之前,您必须在集合上创建Atlas Search索引。要学习;了解如何以编程方式创建Atlas Search索引,请参阅索引指南中的创建搜索索引部分。
Atlas Search 示例
此示例通过执行以下操作来运行Atlas Search查询:
使用
Aggregates.search()
构建器方法构建$search
阶段,指示驱动程序查询title
字段中包含单词"Alabama"
的文档使用
Aggregates.project()
构建器方法构造$project
阶段,指示驾驶员在查询结果中包含title
字段将管道阶段传递到
aggregate()
方法并打印结果
val pipeline: List<Bson> = listOf( search(SearchOperator.text( fieldPath("title"), "Alabama")), project(Projections.include("title")) ) val results = collection.aggregate(pipeline) results.forEach { doc -> println(doc.toJson()) }
{"_id": {"$oid": "..."}, "title": "Alabama Moon"} {"_id": {"$oid": "..."}, "title": "Crazy in Alabama"} {"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}
Atlas Search 元数据
使用 searchMeta()
方法创建 $searchMeta 管道阶段,该阶段仅返回Atlas全文搜索结果中的元数据。
以下示例显示了 Atlas 搜索聚合阶段的 near
元数据:
searchMeta( SearchOperator.near(2010, 1, fieldPath("year")) )
更多信息
要学习;了解有关Atlas Search 的更多信息,请参阅Atlas文档中的Atlas Search 。
API 文档
要学习;了解有关本指南中提到的方法的更多信息,请参阅以下API文档: