Docs 菜单
Docs 主页
/ / /
Scala 驱动程序
/

Atlas Search 索引

Atlas Search 使您能够对 MongoDB Atlas 上托管的集合执行全文搜索。Atlas Search 索引指定了搜索行为以及要索引的字段。

您可以在集合上调用以下方法来管理 Atlas Search 索引:

  • createSearchIndex()

  • createSearchIndexes()

  • listSearchIndexes()

  • updateSearchIndex()

  • dropSearchIndex()

注意

Atlas Search 索引管理方法异步运行,并且可能会在确认其成功运行之前返回。要确定索引的当前状态,请调用 listSearchIndexes() 方法。

以下各节将提供代码示例,演示如何使用上述每种方法。

您可以使用 createSearchIndex()createSearchIndexes() 方法来创建一个或多个 Atlas Search 索引。

您还可以使用这些方法来创建 Atlas Vector Search 索引。Atlas Vector Search 使您能够对存储在 MongoDB Atlas 中的向量嵌入执行语义搜索。要了解有关此功能的更多信息,请参阅 Atlas Vector Search 概述。

以下代码示例展示了如何创建 Atlas Search 索引:

val index = Document("mappings" -> Document("dynamic" -> true))
collection.createSearchIndex("<index name>", index)
.subscribe((result: String) => ())

以下代码示例展示了如何创建多个索引。与可为创建的索引分配默认名称的 createSearchIndex() 方法不同,使用 createSearchIndexes() 方法时,您必须为每个索引提供名称。

val indexOne = SearchIndexModel("<first index name>", Document("mappings" -> Document("dynamic" -> true, "fields" -> Document("field1" -> Document("type" -> "string")))))
val indexTwo = SearchIndexModel("<second index name>", Document("mappings" -> Document("dynamic" -> false, "fields" -> Document("field2" -> Document("type" -> "string")))))
collection.createSearchIndexes(List(indexOne, indexTwo))
.subscribe((result: String) => ())

要详细了解用于定义 Atlas Search 索引的语法,请参阅 Atlas 手册中的查看 Atlas Search 索引语法指南。

您可以使用 listSearchIndexes() 方法返回集合中的所有 Atlas Search 索引。

以下代码示例演示如何通过订阅 listSearchIndexes() 方法返回的 Observable 来打印集合中的搜索索引列表:

collection.listSearchIndexes()
.subscribe((result: Document) => println(result.toJson()))
{"id": "...", "name": "<index name 1>", "type": "search", "status": "READY", "queryable": true, ... }
{"id": "...", "name": "<index name 2>", "type": "search", "status": "READY", "queryable": true, ... }

您可以使用 updateSearchIndex() 方法更新 Atlas Search 索引。

以下代码展示如何更新搜索索引:

val updateIndex = Document("mappings" -> Document("dynamic" -> false))
collection.updateSearchIndex("<index to update>", updateIndex)
.subscribe((result: Unit) => ())

您可以使用 dropSearchIndex() 方法删除 Atlas Search 索引。

以下代码展示了如何从集合中删除搜索索引:

collection.dropSearchIndex("<index name>")
.subscribe((result: Unit) => ())

要了解有关 MongoDB Atlas Search 的更多信息,请参阅 Atlas Search 文档。

要进一步了解本指南所提及的方法和类型,请参阅以下 API 文档:

后退

Multikey

在此页面上