Docs Menu
Docs Home
/ /

Referencia del índice

Un índice de MongoDB Search es una estructura de datos que mapea los documentos del clúster a los términos que se extraen de esos documentos. Los índices de MongoDB Search permiten realizar búsquedas eficientes de texto completo en la base de datos.

Cuando define un índice de búsqueda de MongoDB, puede utilizar Mapeos estáticos o dinámicos para especificar qué campos o tipos de campos desea indexar en su colección. También puede usar analizadores para definir cómo MongoDB Search extrae tokens de búsqueda de... string Campos o cadenas de consulta. Finalmente, puede aplicar opciones de configuración adicionales en la definición de su índice para mejorar el rendimiento y la precisión de su consulta de búsqueda de MongoDB, incluyendo opciones para almacenar campos de origen en su índice o definir asignaciones de sinónimos.

Para aprender a definir un índice de búsqueda de MongoDB según los requisitos de la query, se debe consultar Gestionar los índices de búsqueda de MongoDB. Una vez que se defina el índice de búsqueda de MongoDB, se puede añadir el índice al clúster con el tutorial Crear un índice de MongoDB Search. Para aprender a ver, editar, actualizar o borrar el índice de búsqueda de MongoDB, se debe consultar Clientes compatibles.

Esta página describe el Opciones de definición y sintaxisJSON para un índice de búsqueda de MongoDB.

1{
2 "mappings": {
3 "dynamic": <boolean> | { <field-types-definition> } ,
4 "fields": { <field-definition> }
5 }
6}
7
1{
2 "analyzer": "<analyzer-for-index>",
3 "searchAnalyzer": "<analyzer-for-query>",
4 "mappings": {
5 "dynamic": <boolean> | {
6 "typeSet": "<typeSet-name>"
7 } ,
8 "fields": {
9 <field-definition>
10 }
11 },
12 "numPartitions": <integer>,
13 "analyzers": [ <custom-analyzer> ],
14 "storedSource": <boolean> | {
15 <stored-source-definition>
16 },
17 "synonyms": [
18 {
19 <synonym-mapping-definition>
20 }
21 ],
22 "typeSets": [
23 {
24 "types": [
25 {<field-types-definition>}
26 ]
27 }
28 ]
29}
Campo
Tipo
Necesidad
Descripción

analyzer

String

Opcional

Especifica el analizador que se aplicará a los campos de string para la indexación.

Si establece esto solo a nivel superior y no especifica un analizador para los campos en la definición del índice, MongoDB búsqueda aplica este analizador a todos los campos. Para utilizar un analizador diferente para cada campo, debe especificar un analizador distinto para el campo.

Si se omite, el valor predeterminado es analizador estándar.

analyzers

Opcional

Especifique los Analizadores Personalizados que se utilizarán en este índice.

mappings

Objeto

Requerido

Especifica cómo indexar los campos en las diferentes rutas de este índice.

mappings.
dynamic

Booleano o objeto

Opcional

Permite la asignación dinámica de tipos de campos o configura campos individualmente para este índice.

El valor debe ser uno de los siguientes:

  • booleano: establece en true para indexar recursivamente todos los tipos de campo que se pueden indexar o establece en false para no indexar dinámicamente ninguno de los tipos de campo que se pueden indexar.

  • Objeto - especifica el typeSet para usar en la indexación recursiva de todos los tipos de campos indexables. Para aprender más, consulta mappings.dynamic.typeSet.

Si se omite, por defecto es false. Si se establece en false, debes definir los campos individuales para establecer el índice estático usando mappings.fields.

También puedes configurar campos individualmente para anular la configuración por defecto usando mappings.fields. La configuración de los campos en mappings.fields anula la configuración por defecto.

IMPORTANTE: MongoDB Search indexa automáticamente todos los tipos de campos que se pueden indexar dinámicamente en un document. MongoDB Search también indexa de forma recursiva todos los documentos anidados bajo document, a menos que lo anules explícitamente configurando dynamic a false. También puedes configurar la indexación dinámica para indexar solo tipos de campos especificados usando typeSets.

Para aprender sobre los tipos de campos que puedes habilitar para las asignaciones dinámicas, consulta Tipos de campo de MongoDB Search.

Para ejemplos de configuraciones de índices, consulta Ejemplos

mappings.
dynamic.
typeSet

String

Opcional

Hace referencia al nombre del objeto typeSets que contiene la lista de tipos de campos para indexar de forma automática y recursiva.

Mutuamente excluyente con el indicador booleano mappings.dynamic.

mappings.
fields

Objeto

Condicional

Especifica los campos que deseas indexar. Solo es necesario si la asignación dinámica es false.

No puedes indexar campos que contengan el signo de dólar ($) al inicio del nombre del campo.

Para obtener más información, consulta Definir asignaciones de campo.

searchAnalyzer

String

Opcional

Especifica el analizador que se debe aplicar al texto de la query antes de buscar con él.

Si se omite, por defecto es el analizador que hayas especificado para la opción analyzer. Si omites tanto la opción searchAnalyzer como la opción analyzer, por defecto se utilizará el analizador estándar.

numPartitions

entero

Opcional

Especifica el número de subíndices que se deben crear si el recuento de documentos supera los dos mil millones. Los siguientes valores son válidos: 1, 2, 4. Si se omite, es 1 por defecto.

Para usar particiones de índice, debe tener nodos de búsqueda implementados en su clúster.

storedSource

Opcional

Especifica los campos en los documentos para almacenar en el momento del query utilizando la opción returnedStoredSource. Puedes almacenar campos de todos los tipos de campos de MongoDB Search en MongoDB Search. El valor puede ser uno de los siguientes:

  • true, para almacenar todos los campos

  • false, para no almacenar ningún campo

  • Objeto que especifica los campos para include o exclude del almacenamiento

storedSource solo está disponible en clústeres que ejecutan MongoDB 7.0+.

Si se omite, es por defecto false.

Para aprender más, se debe consultar Definición de los campos de origen almacenados en el índice de MongoDB Search.

synonyms

Opcional

Especifique las asignaciones de sinónimos que se utilizarán en su índice.

Una definición de índice solo puede tener un mapeo de sinónimos.

Para aprender más, se debe consultar Definir asignaciones de sinónimos en el índice de MongoDB Search.

typeSets

Arreglo de objetos

Opcional

Especifica los typeSets que se utilizan en este índice para las asignaciones dinámicas.

typeSets.
[n].name

String

Requerido

Especifica el nombre de la configuración de typeSet.

typeSets.
[n].types

Arreglo de objetos

Requerido

Especifica los tipos de campo, uno por objeto, para indexar automáticamente usando asignaciones dinámicas.

typeSets.
[n].types.
[n].type

String

Requerido

Especifica el tipo de campo para el índice automático. Para aprender más sobre los tipos de campo que puedes configurar para la asignación dinámica, consulta Configurar un typeSet.

El siguiente error se devuelve si ejecutas queries $search cuando el proceso de búsqueda de MongoDB mongot no está instalado o en ejecución:

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

El proceso mongot se instala solo cuando se define el primer índice de MongoDB Search. Si no hay ningún índice de MongoDB Search en el clúster, se debe crear al menos un índice de MongoDB Search para resolver este error.

Para aprender a definir un índice de MongoDB Search que satisfaga tus necesidades de query de MongoDB Search, consulta Gestionar índices de MongoDB Search.

Para aprender cómo añadir un índice a su clúster, consulte Crear un índice de búsqueda de MongoDB.

Para aprender más sobre las opciones de configuración de índices disponibles, consulta las siguientes páginas de referencia:

Volver

Gestionar índices

En esta página