Docs 菜单
Docs 主页
/ / /
Scala
/

Atlas Search 索引

在此页面上

  • Overview
  • 创建搜索索引
  • 搜索索引列表
  • 更新搜索索引
  • 删除搜索索引
  • 更多信息

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