Docs Menu
Docs Home
/ /

updateSearchIndex (comando de base de datos)

updateSearchIndex

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

Actualiza un existente Índice de búsqueda de MongoDB.

El método mongosh db.collection.updateSearchIndex() proporciona un contenedor alrededor del updateSearchIndex comando de base de datos.

Importante

Este comando solo se puede ejecutar en una implementación alojada en MongoDB Atlas.

Sintaxis del comando:

db.runCommand(
{
updateSearchIndex: "<collection name>",
id: "<index Id>",
name: "<index name>",
type: "search | vectorSearch",
definition: {
/* search index definition fields */
}
}
)

El comando updateSearchIndex toma los siguientes campos:

Campo
Tipo
Necesidad
Descripción

updateSearchIndex

string

Requerido

Nombre de la colección que contiene el índice a actualizar.

id

string

Condicional

id del índice a actualizar.

Debe especificar el campo id name o.

name

string

Condicional

Nombre del índice a actualizar.

Debe especificar el campo id name o.

type

string

Opcional

Tipo de índice. El valor debe ser una de las siguientes opciones:

  • search - para el índice de búsqueda de MongoDB.

  • vectorSearch - para el índice de búsqueda vectorial.

El valor que especifique debe coincidir con el tipo de índice que desea actualizar. No puede cambiar el tipo de índice.

Este campo no es compatible para actualizar un índice en una colección en el clúster Atlas.

definition

Documento

Requerido

Documento que describe la definición actualizada del índice de búsqueda. La definición especificada reemplaza la anterior en el índice de búsqueda.

Para más detalles sobre la sintaxis de definition, consulta la Sintaxis de definición del índice de búsqueda.

La definición del índice de búsqueda toma 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 que se aplicará a los campos de cadena durante la indexación.

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

searchAnalyzer

string

Opcional

Especifica el analizador que se aplicará para consultar el texto antes de buscarlo.

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

Si omite searchAnalyzer los analyzer campos y, el índice utiliza 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 la asignación dinámica de campos para este índice.

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

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

Si se omite, es por defecto false.

mappings.fields

Documento

Condicional

Obligatorio sólo si el mapeo dinámico está deshabilitado.

Especifica los campos para indexar. Para obtener más información, consulte Definir mapeos de campos.

analyzers

arreglo

Opcional

Especifica los analizadores personalizados que se utilizarán en este índice.

storedSource

Definición de fuentebooleana o almacenada

Opcional

Especifica los campos del documento que se almacenarán para las consultas realizadas utilizando la opción returnsStoredSource.

Puedes almacenar campos de todos los tipos de campos de búsqueda de MongoDB en MongoDB Search. El valor de storedSource puede ser uno de estos:

  • true, para almacenar todos los campos

  • false, para no almacenar ningún campo

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

Si se omite, es por defecto false.

Para obtener más información, consulta Definir campos fuente almacenados en tu MongoDB Search.

synonyms

Opcional

Especifica las asignaciones de sinónimos para usar en el índice. Configurar sinónimos permite indexar y buscar palabras con significados iguales o similares.

Para obtener más información, consulte Definir asignaciones de sinónimos en su índice de búsqueda de MongoDB.

El comando updateSearchIndex inicia la creación de un índice con la nueva definición. Puede haber un retraso entre la respuesta del comando y la disponibilidad del índice actualizado.

La definición del índice anterior aún admite consultas mientras se construye el nuevo. Una vez que el nuevo índice termina de construirse, el índice anterior deja de ser utilizable. Para ver el estado de sus índices de búsqueda, utilice la $listSearchIndexes etapa de agregación.

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

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

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

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

Un comando updateSearchIndex exitoso devuelve lo siguiente:

{
ok: 1
}

Importante

El campo de respuesta ok: 1 indica que el comando se ejecutó correctamente. Sin embargo, puede haber un retraso entre la recepción de la respuesta y el momento en que el índice actualizado esté listo y reemplace al original.

Para ver el estado de sus índices de búsqueda, utilice la $listSearchIndexes etapa de agregación.

El siguiente ejemplo actualiza un índice de búsqueda llamado searchIndex01 en la colección contacts:

db.runCommand( {
updateSearchIndex: "contacts",
name: "searchIndex01",
definition:
{
mappings: { dynamic: true },
storedSource: {
exclude: [ "directors", "imdb.rating" ]
}
}
} )

Volver

Índice de búsqueda desplegable

En esta página