Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序
/ /

Atlas Search和 Vector Search 索引

在此页面上

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

您可以通过使用 Kotlin Sync 驱动程序,以编程方式管理 Atlas SearchAtlas Vector Search 索引。

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

Atlas Vector Search 使您能够对存储在 MongoDB Atlas 中的向量嵌入执行语义搜索。向量搜索索引定义要查询的向量嵌入的索引,以及要用于预过滤数据的布尔值、日期、objectId、数字、字符串或 UUID 值。

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

  • createSearchIndex() (仅对Atlas Search索引有效)

  • createSearchIndexes()

  • listSearchIndexes()

  • updateSearchIndex()

  • dropSearchIndex()

注意

Atlas Search 和 Vector Search 索引管理方法是异步运行的,可能会在确认成功运行之前返回。要确定索引的当前状态,请调用 listSearchIndexes() 方法或查看 Atlas 用户界面中的索引列表。

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

您可以使用 createSearchIndex() 创建单个Atlas Search索引的方法。您 不能 使用此方法创建 Vector Search索引。

您可以使用 createSearchIndexes() 方法创建多个Atlas Search或 Vector Search 索引。您必须创建 SearchIndexModel 每个索引的实例,然后将SearchIndexModel 实例列表传递给createSearchIndexes() 方法。

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

val index = Document("mappings", Document("dynamic", true))
collection.createSearchIndex("mySearchIdx", index)

以下代码示例展示了如何在一次调用中创建 Atlas Search 和 Vector Search 索引:

val searchIdxMdl = SearchIndexModel(
"searchIdx",
Document("analyzer", "lucene.standard").append(
"mappings", Document("dynamic", true)
),
SearchIndexType.search()
)
val vectorSearchIdxMdl = SearchIndexModel(
"vsIdx",
Document(
"fields",
listOf(
Document("type", "vector")
.append("path", "embeddings")
.append("numDimensions", 1536)
.append("similarity", "dotProduct")
)
),
SearchIndexType.vectorSearch()
)
collection.createSearchIndexes(
listOf(searchIdxMdl, vectorSearchIdxMdl)
)

要了解有关用于定义 Atlas Search 索引的语法的更多信息,请参阅 Atlas 文档中的查看 Atlas Search 索引语法指南。

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

以下代码示例显示如何打印集合的搜索索引列表:

val results = collection.listSearchIndexes()
results.forEach { result ->
println(result)
}

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

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

val newIndex = Document("mappings", Document("dynamic", true))
collection.updateSearchIndex("<index to update>", newIndex)

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

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

collection.dropIndex("<index to delete>")

如需了解有关 MongoDB Atlas Search 的更多信息,请参阅“Atlas Search 索引”文档。

后退

复合索引