Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

MongoDB Search e índices de búsqueda vectorial

Puede gestionar programáticamente sus MongoDB Search y Búsqueda Vectorial de MongoDB en los índices utilizando el driver Sync de Kotlin.

MongoDB Search le permite realizar búsquedas de texto completo en colecciones alojadas en MongoDB Atlas. Los índices de MongoDB Search especifican el comportamiento de la búsqueda y qué campos indexar.

MongoDB Vector Search te permite realizar búsquedas semánticas en incrustaciones vectoriales almacenadas en MongoDB Atlas. Los índices de Vector Search definen los índices para las incrustaciones vectoriales que deseas query y los valores booleanos, de fecha, objectId, numéricos, string o UUID que deseas usar para prefiltrar tus datos.

Puedes llamar a los siguientes métodos en una colección para gestionar tus índices de búsqueda y búsqueda vectorial de MongoDB:

  • createSearchIndex() (válido solamente para índice de MongoDB Search)

  • createSearchIndexes()

  • listSearchIndexes()

  • updateSearchIndex()

  • dropSearchIndex()

Nota

Los métodos de gestión de índices de búsqueda y búsqueda vectorial de MongoDB se ejecutan de forma asíncrona y podrían devolver una respuesta antes de confirmar que se ejecutaron correctamente. Para determinar el estado actual de los índices, llama al método listSearchIndexes() o revisa la lista de índices en la Atlas Interfaz de Usuario.

Las siguientes secciones muestran ejemplos de código que demuestran cómo utilizar cada uno de los métodos anteriores.

Puede utilizar el método createSearchIndex() para crear un solo índice de búsqueda de MongoDB Search. No puedes usar este método para crear un índice de Búsqueda Vectorial.

Puedes usar el método createSearchIndexes() para crear múltiples índices MongoDB Search o Vector Search. Debes crear una instancia SearchIndexModel para cada índice, luego pasar una lista de instancias SearchIndexModel al método createSearchIndexes().

El siguiente ejemplo de código muestra cómo crear un índice de búsqueda de MongoDB:

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

El siguiente ejemplo de código muestra cómo crear índices de Búsqueda de MongoDB y Búsqueda Vectorial en una sola llamada:

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)
)

Para obtener más información sobre la sintaxis utilizada para definir los índices de MongoDB Search, consulta la guía Revisar la sintaxis del índice de MongoDB Search en la documentación de Atlas.

Puedes utilizar el método listSearchIndexes() para devolver todos los índices de búsqueda de MongoDB Search en una colección.

El siguiente ejemplo de código muestra cómo imprimir una lista de los índices de búsqueda en una colección:

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

Puedes utilizar el método updateSearchIndex() para actualizar un índice de Búsqueda de MongoDB.

El siguiente código muestra cómo actualizar un índice de búsqueda:

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

Se puede usar el método dropSearchIndex() para borrar un índice de búsqueda de MongoDB Search.

El siguiente código muestra cómo eliminar un índice de búsqueda de una colección:

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

Para obtener más información sobre MongoDB Search, consulta la documentación de Índices de MongoDB Search.

Volver

Indexes

En esta página