Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.colección.updateSearchIndex() (método mongosh)

db.collection.updateSearchIndex()

Novedades en la versión 7.0: (También disponible a partir de la versión 6.0.7)

Actualiza un índice de búsqueda de MongoDB existente o un índice de búsqueda vectorial de MongoDB.

Importante

Método mongosh

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

Para el comando de base de datos, consulta el comando updateSearchIndex.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Sintaxis del comando:

db.<collection>.updateSearchIndex(
<name>,
{
<definition>
}
)

updateSearchIndex() toma estos campos:

Campo
Tipo
Necesidad
Descripción

name

string

Requerido

Nombre del índice de búsqueda que se va a actualizar.

definition

Documento

Requerido

Documento que describe el índice a crear. La sintaxis de definition depende de si creas un índice de búsqueda estándar o un índice de Vector Search. Para la sintaxis definition, vea:

La definición del índice de búsqueda requiere los siguientes campos:

{
analyzer: "<analyzer-for-index>",
searchAnalyzer: "<analyzer-for-query>",
mappings: {
dynamic: <boolean>,
fields: { <field-definition> }
},
analyzers: [ <custom-analyzer> ],
storedSource: <boolean> | {
<stored-source-definition>
},
synonyms: [ {
name: "<synonym-mapping-name>",
source: {
collection: "<source-collection-name>"
},
analyzer: "<synonym-mapping-analyzer>"
} ]
}
Campo
Tipo
Necesidad
Descripción

analyzer

string

Opcional

Especifica el analizador a aplicar a los campos de string durante la indexación.

Si omites este campo, el índice utiliza el analizador estándar.

searchAnalyzer

string

Opcional

Especifica el analizador que se debe aplicar al texto de la query antes de buscar en el texto.

Si omite este campo, el índice utiliza el mismo analizador especificado en el campo analyzer.

Si omites tanto los campos searchAnalyzer como analyzer, el índice usa el analizador estándar.

mappings

Objeto

Requerido

Especifica cómo indexar campos en diferentes rutas para este índice.

mappings.dynamic

booleano

Opcional

Habilita o deshabilita el mapeo dinámico de campos para este índice.

Si se configura en true, el índice contiene todos los campos que contienen tipos de datos admitidos.

Si se establece en false, debe especificar los campos individuales para indexar usando mappings.fields.

Si se omite, es por defecto false.

mappings.fields

Documento

Condicional

Requerido solo si el mapeo dinámico está deshabilitado.

Specifies the fields to index. To learn more, see Define Field Mappings for a MongoDB Search Index.

analyzers

arreglo

Opcional

Especifica los Analizadores personalizados que se deben usar en este índice.

storedSource

Opcional

Especifica los campos de documento que se deben almacenar para las consultas realizadas usando la opción returnedStoredSource.

You can store fields of all MongoDB Search Field Types on MongoDB Search. The storedSource value can be one of these:

  • true, para almacenar todos los campos

  • false, para no almacenar ningún campo

  • Un objeto que especifica los campos a include o exclude del almacenamiento

Si se omite, es por defecto false.

Para obtener más información, consulta Define campos fuente almacenados en tu índice de búsqueda de MongoDB Search.

synonyms

Opcional

Especifica asignaciones de sinónimos a utilizar en tu índice. Configurar sinónimos te permite indexar y buscar palabras que tengan el mismo o un significado similar.

Para obtener más información, consulta Define asignaciones de sinónimos en tu índice de MongoDB Search.

La definición del índice de búsqueda vectorial tiene los siguientes campos:

{
"fields": [
{
"type": "vector" | "filter",
"path": "<field-to-index>",
"numDimensions": <number-of-dimensions>,
"similarity": "euclidean" | "cosine" | "dotProduct"
}
]
}

Para obtener explicaciones sobre los campos de definición del índice de búsqueda vectorial, consulta Cómo indexar campos para búsquedas vectoriales.

updateSearchIndex() activa una creación de índices con la nueva definición de índice. Puede haber un retraso entre el momento en que recibes una respuesta del comando y el momento en que el índice actualizado está listo.

La definición anterior del índice aún puede soportar consultas mientras se construye el nuevo índice. Una vez que el nuevo índice termina de construirse, el antiguo ya no es utilizable. Para ver el estado de los índices de búsqueda, utiliza la etapa de agregación $listSearchIndexes.

Si el despliegue aplica control de acceso, el usuario que ejecuta updateSearchIndex() debe tener la acción de privilegio updateSearchIndex en la base de datos o colección:

{
resource: {
db : <database>,
collection: <collection>
},
actions: [ "updateSearchIndex" ]
}

Los roles integrados readWrite y restore proporcionan el privilegio de updateSearchIndex. El siguiente ejemplo otorga el rol readWrite en la base de datos qa:

db.grantRolesToUser(
"<user>",
[ { role: "readWrite", db: "qa" } ]
)

El siguiente ejemplo crea un nuevo MongoDB Search índice y luego actualiza ese índice.

  1. Cree un índice de búsqueda llamado searchIndex01 en la colección movies:

    db.movies.createSearchIndex(
    "searchIndex01",
    {
    mappings: { dynamic: true },
    storedSource: {
    exclude: [ "imdb.rating" ]
    }
    }
    )
  2. Actualizar el índice searchIndex01:

    db.movies.updateSearchIndex(
    "searchIndex01",
    {
    mappings: { dynamic: true },
    storedSource: {
    exclude: [ "movies" ]
    }
    }
    )