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 pueden devolver una respuesta antes de confirmar que se ejecutaron correctamente. Para determinar el estado actual de los índices, llama 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 usar los métodos createSearchIndex() y createSearchIndexes() para crear uno o más índices de búsqueda de MongoDB.
También puedes utilizar estos métodos para crear índices de búsqueda vectorial de MongoDB. MongoDB Vector Search te permite realizar búsquedas semánticas en incrustaciones vectoriales almacenadas en MongoDB Atlas. Para aprender más sobre esta funcionalidad, consulta la Visión general de MongoDB Vector Search.
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 índices de MongoDB Search, consulta la guía Revisar la sintaxis del índice de MongoDB Search 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
Se 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 usar el método dropSearchIndex() para borrar 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, consulta 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, vea la siguiente documentación de la API: