Overview
MongoDB Search 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 los campos que se indexan.
Puede llamar a los siguientes métodos en una colección para administrar sus índices de búsqueda de MongoDB:
createSearchIndex()createSearchIndexes()listSearchIndexes()updateSearchIndex()dropSearchIndex()
Nota
Los métodos de gestión de índices de MongoDB Search se ejecutan de forma asíncrona y podrían regresar antes de confirmar su correcta ejecución. Para determinar el estado actual de los índices, llame al método listSearchIndexes().
Las siguientes secciones proporcionan ejemplos de código que demuestran cómo utilizar cada uno de los métodos anteriores.
Crear un índice de búsqueda
Puede utilizar los métodos createSearchIndex() y createSearchIndexes() para crear uno o más índices de búsqueda de MongoDB.
También puede usar estos métodos para crear índices de búsqueda vectorial de MongoDB. La búsqueda vectorial de MongoDB le permite realizar búsquedas semánticas en incrustaciones vectoriales almacenadas en MongoDB Atlas. Para obtener más información sobre esta función, consulte la descripción general de la búsqueda vectorial de MongoDB.
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("<index name>", index) .subscribe((result: String) => ())
El siguiente ejemplo de código muestra cómo crear varios índices. A diferencia del método createSearchIndex(), que asigna un nombre predeterminado al índice creado, al usar el método createSearchIndexes(), se deben proporcionar nombres de índice para cada índice.
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) => ())
Para obtener más información sobre la sintaxis utilizada para definir los índices de búsqueda de MongoDB, consulte la guía Revisar la sintaxis del índice de búsqueda de MongoDB en el manual de Atlas.
Índices de búsqueda de listas
Puede utilizar el método listSearchIndexes() para devolver todos los índices de búsqueda de MongoDB 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 suscribiéndose al Observable devuelto por el método listSearchIndexes():
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, ... }
Actualizar un índice de búsqueda
Puede 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 updateIndex = Document("mappings" -> Document("dynamic" -> false)) collection.updateSearchIndex("<index to update>", updateIndex) .subscribe((result: Unit) => ())
Eliminar un índice de búsqueda
Puede utilizar el método dropSearchIndex() para eliminar un índice de búsqueda de MongoDB.
El siguiente código muestra cómo eliminar un índice de búsqueda de una colección:
collection.dropSearchIndex("<index name>") .subscribe((result: Unit) => ())
Información Adicional
Para obtener más información sobre MongoDB Search, consulte la documentación de MongoDB Search.
Documentación de la API
Para obtener más información sobre los métodos y tipos mencionados en esta guía, consulte la siguiente documentación de API: