Você pode usar o objeto multi em sua definição de índice para especificar analisadores alternativos com os quais também indexar o campo. Ao indexar um campo com analisadores alternativos além do analisador padrão, você pode pesquisar a coleção com o analisador padrão ou alternativo. Esta página demonstra como especificar analisadores alternativos na sua definição de índice usando multi.
Limitações do multianalisador
A opção de caminho do multi está disponível somente para campos do tipo string.
A Pesquisa do MongoDB não suporta o aninhamento de múltiplas camadas de objetos multi.
Exemplos
The following examples demonstrate index definitions on the fields in the sample_mflix.movies collection. If you load the collection on your cluster, you can create the example indexes using the Visual Editor or the JSON Editor in the Atlas UI or using mongosh.
Exemplo de Campo Único
O exemplo de definição de índice a seguir especifica um índice no campo title usando o analisador standard. A definição do índice também especifica o analisador lucene.french como um analisador alternativo para o campo title, com o nome frenchAnalyzer.
A query a seguir usa o analisador alternativo, chamado frenchAnalyzer, para pesquisar a string liberte.
O documento nos resultados é uma correspondência porque o frenchAnalyzer reduz a string indexada è Nous la Libertè e o termo de query liberte para a palavra base libert. O MongoDB Search não retornará este documento para uma pesquisa com o analisador standard porque ele não remove os diacríticos. Cada analisador gera os seguintes tokens (termos pesquisáveis) para o índice e query:
Analisador | Index Tokens | Tokens de consulta |
|---|---|---|
Analisador padrão |
|
|
Analisador Francês |
|
|
Exemplo de Múltiplos Campos
A definição de exemplo de índice a seguir especifica um índice nos campos title e plot usando o analisador standard. A definição do índice também especifica lucene.french como um analisador alternativo para os campos title e plot.
A seguinte query busca correspondências para a string revolution nos campos title e plot usando o analisador alternativo chamado frenchAnalyzer.
Os documentos nos resultados contêm o termo de consulta em ambos os campos title e plot. Cada analisador cria os seguintes tokens (termos pesquisáveis) para o campo title de cada documento nos resultados:
Ano | Analisador | Index Tokens | Tokens de consulta |
2012 | Analisador padrão |
|
|
1985 | Analisador padrão |
|
|
2014 | Analisador padrão |
|
|
1970 | Analisador padrão |
|
|
1989 | Analisador padrão |
|
|
Para o quinto documento nos resultados, o frenchAnalyzer removeu os diacríticos no campo title para fazer a correspondência do documento com o termo de consulta.