Puedes usar el objeto multi en la definición de tu índice para especificar analizadores alternativos con los que también indexar el campo. Cuando indexa un campo con analizadores alternativos además del analizador por defecto, puede buscar en la colección con cualquiera de los dos, el analizador por defecto o el alternativo. Esta página demuestra cómo especificar analizadores alternativos en tu definición de índice usando multi.
Limitaciones del multianalizador
La opción de ruta multi solo está disponible para campos de tipo string.
MongoDB Search no admite la anidación de múltiples capas de objetos multi.
Ejemplos
Los siguientes ejemplos demuestran definiciones de índices en los campos de la colección sample_mflix.movies. Si cargas la colección en tu clúster, puedes crear los índices de ejemplo usando el Editor visual o el Editor JSON en la Interfaz de Usuario de Atlas o usando mongosh.
Ejemplo de campo único
La siguiente definición de índice de ejemplo especifica un índice en el campo title usando el analizador standard. La definición del índice también especifica el analizador lucene.french como un analizador alternativo para el campo title, con el nombre frenchAnalyzer.
La siguiente consulta utiliza el analizador alternativo, denominado frenchAnalyzer, para buscar la string liberte.
El documento en los resultados es una coincidencia porque el frenchAnalyzer redujo tanto la string indexada è Nous la Libertè como el query término liberte a la palabra base libert. MongoDB Search no devolverá este documento para una búsqueda con el analizador standard porque no remueve los diacríticos. Cada analizador genera los siguientes tokens (términos buscables) para el índice y la query:
Analizador | Index Tokens | Query Tokens |
|---|---|---|
Analizador estándar |
|
|
Analizador francés |
|
|
Ejemplo de múltiples campos
El siguiente ejemplo de definición de índice especifica un índice en los campos title y plot utilizando el analizador standard. La definición del índice también especifica lucene.french como analizador alternativo para los campos title y plot.
La siguiente consulta busca coincidencias para la string revolution en los campos title y plot, utilizando el analizador alternativo llamado frenchAnalyzer.
Los documentos en los resultados contienen el término de query tanto en el campo title como en el campo plot. Cada analizador crea los siguientes tokens (términos que se pueden buscar) para el campo title de cada documento en los resultados:
Año | Analizador | Index Tokens | Query Tokens |
2012 | Analizador estándar |
|
|
1985 | Analizador estándar |
|
|
2014 | Analizador estándar |
|
|
1970 | Analizador estándar |
|
|
1989 | Analizador estándar |
|
|
Para el quinto documento en los resultados, el frenchAnalyzer eliminó los signos diacríticos en el campo title para que coincida el documento con el término de query.