El synonyms opción en una búsqueda de MongoDB Ladefinición de índice especifica asignaciones de sinónimos que permiten indexar y buscar en la colección palabras con el mismo significado o casi el mismo. Para configurar un índice de MongoDB Search con asignaciones de sinónimos, debe:
Agregue una colección de documentos de sinónimos a su clúster. Asegúrese de que:
Su colección está en la misma base de datos que el índice que hará referencia a la colección
Los documentos son correctamente formateado
Haga referenciaa la colección de fuentes de sinónimos en una asignación de sinónimos en la definición del índice.
Una asignación de sinónimos configura un índice de búsqueda de MongoDB para admitir consultas que apliquen sinónimos de una colección de origen de sinónimos en la misma base de datos que la colección que se está indexando. Solo se pueden usar sinónimos en consultas que utilicen el operador de texto o frase.
Nota
Limitación del clúster de nivel gratuito (M0)
Una definición de índice solo puede tener una asignación de sinónimos.
Esta página describe el formato de la colección de origen de sinónimos y cómo definir asignaciones de sinónimos que hagan referencia a la colección de origen de sinónimos en su índice de búsqueda de MongoDB.
Sintaxis
synonyms tiene la siguiente sintaxis en una definición de índice:
1 { 2 "synonyms": [ 3 { 4 "name": "<synonym-mapping-name>", 5 "source": { 6 "collection": "<source-collection-name>" 7 }, 8 "analyzer": "<synonym-mapping-analyzer>" 9 } 10 ] 11 }
opciones
synonyms toma los siguientes campos en una definición de índice:
Campo | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | Nombre del analizador a utilizar con esta asignación de sinónimos. Puede utilizar una asignación de sinónimos para realizar queries solo sobre los campos analizados con el mismo analizador. Para utilizar sinónimos con palabras vacías, debe indexar el campo utilizando el Analizador estándar o agregar la entrada de sinónimo sin la palabra vacía. Puede utilizar cualquier analizador de búsqueda de MongoDB excepto los siguientes:
Tokenizadores de analizadores personalizados y filtros de tokens: | Requerido |
| string | Nombre de la asignación de sinónimos. El nombre debe ser único en la definición del índice. El valor no puede ser una cadena vacía. | Requerido |
| Documento | Colección de fuentes para sinónimos. La | Requerido |
| string | Nombre de la colección de MongoDB que se encuentra en la misma base de datos que el índice de búsqueda de MongoDB. Los documentos de esta colección deben tener el formato descrito en la sección "Documentos de la colección fuente de sinónimos". | Requerido |
Documentos de la colección de fuentes de sinónimos
Cada documento en la colección especificada como fuente para los sinónimos describe cómo una o más palabras se relacionan con uno o más sinónimos de esas palabras.
Nota
En los clústeres de nivel gratuito, la colección de sinónimos no puede superar los 10,000 documentos.
Formato de los documentos de la colección de fuentes de sinónimos
Debe configurar cada documento con los siguientes campos.
Campo | Tipo | Descripción | Necesidad |
|---|---|---|---|
| matriz de cadenas | Requerido para asignaciones Para las asignaciones | Condicional |
| string | Tipo de mapeo. El valor puede ser uno de los siguientes: | Requerido |
| matriz de cadenas | Palabras que son sinónimos entre sí si Para utilizar sinónimos con palabras vacías, debe agregar la entrada de sinónimo sin la palabra vacía o indexar el campo utilizando el Analizador estándar. Para | Requerido |
Los documentos de la colección pueden contener otros campos. Son aditivos y las asignaciones se deduplican. Los sinónimos de MongoDB Search se almacenan como una colección Atlas independiente, lo que contabiliza la misma cuota de almacenamiento que cualquier otra colección en Atlas. MongoDB Search podría utilizar más recursos computacionales para aplicar sinónimos de colecciones de origen de sinónimos más grandes.
Advertencia
No incluya documentos de sinónimos no válidos en la colección de fuentes de sinónimos. MongoDB Search no crea índices si estos utilizan asignaciones de sinónimos que hacen referencia a colecciones con documentos no válidos. Incluya únicamente documentos de sinónimos con el formato correcto en su colección de fuentes de sinónimos.
MongoDB no recomienda agregar documentos de sinónimos a colecciones de fuentes de sinónimos en un entorno de producción sin validar primero que tengan el formato correcto y se comporten como se espera en un entorno de prueba.
Cambios en los documentos de la colección de fuentes de sinónimos
Si realiza cambios en su colección de fuentes de sinónimos:
No es necesario volver a indexar porque MongoDB Search detecta los cambios y actualiza automáticamente su mapa de sinónimos interno.
El tiempo que tarda MongoDB Search en actualizar las asignaciones de sinónimos aumenta con el tamaño de la colección de fuentes de sinónimos. Tenga en cuenta que los cambios en los documentos de sinónimos se reflejan eventualmente en los resultados de su consulta de MongoDB Search.
Ejemplos de documentos de colección
Ejemplos de documentos de recopilación de fuentes
Atlas proporciona los documentos para los siguientes ejemplos de tipos de mapeo de MongoDB Search en una colección llamada sample_synonyms. Puedes cargar estos documentos en tu clúster en la misma base de datos que tu colección. Para cargar estos documentos en tu clúster, cuando crees el índice para tu colección, haz lo siguiente:
Cuando seleccionas el Configuration Method, seleccione Visual Editor.
Cuando vaya a Add synonym mapping su índice, seleccione Load sample collection del menú desplegable Synonym source collection.
equivalent mappingType
En el siguiente documento de colección de origen de ejemplo, mappingType se establece en equivalent para que los tokens car, vehicle y automobile estén configurados para ser sinónimos entre sí.
{ "mappingType": "equivalent", "synonyms": ["car", "vehicle", "automobile"] }
Para una consulta de texto carpara, vehicle o automobile aplicando una asignación de sinónimos que incluye dicho documento, MongoDB Search devuelve documentos que contienen el car término, vehicle automobileo.
explicit mappingType
En el siguiente documento de colección de origen de ejemplo, mappingType se establece en explicit para que los tokens beer, brew y pint se configuren para ser sinónimos del token input beer.
{ "mappingType": "explicit", "input": ["beer"], "synonyms": ["beer", "brew", "pint"] }
Para una consulta de texto de beer que aplica una asignación de sinónimos que incluye dicho documento, MongoDB Search devuelve documentos que contienen los términos "cerveza", "brew" o "pinta" porque el input token beer está asignado explícitamente a todos estos synonyms tokens. Sin embargo, para una consulta pint de, MongoDB Search no encuentra documentos que contengan beer porque pint no está asignado explícitamente beer a.
Ejemplo de colección de fuentes de sinónimos
La siguiente colección denominada synonymous_terms es un ejemplo de colección fuente de sinónimos que se puede utilizar con la colección movies en la base de datos sample_mflix.
La colección sample_mflix.synonymous_terms contiene los siguientes documentos:
{ "mappingType": "equivalent", "synonyms": ["car", "vehicle", "automobile"] }
{ "mappingType": "explicit", "input": ["race"], "synonyms": ["contest", "rally"] }
{ "mappingType": "equivalent", "synonyms": ["dress", "apparel", "attire"] }
{ "mappingType": "explicit", "input": ["boat"], "synonyms": ["vessel", "sail"] }