Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序
/

Atlas Search和 Vector Search 索引

您可以通过使用 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 索引”文档。

后退

索引

在此页面上