Você pode controlar como o MongoDB Search transforma o string
conteúdo de um campo do em termos pesquisáveis utilizando analisadores. Analisadores são políticas que combinam um tokenizador, que extrai tokens do texto, com filtros definidos por você. O MongoDB Search aplica seus filtros aos tokens para criar termos indexáveis que corrigem diferenças de pontuação, maiúsculas, palavras de preenchimento e muito mais.
Você pode especificar analyzers em sua definição de índice para o MongoDB Search usar ao criar um índice ou pesquisar em seu banco de dados. Você também pode especificar analisadores alternativos (multi) para usar ao indexar campos individuais ou definir seus próprios analisadores personalizados.
Sintaxe
As abas a seguir mostram a sintaxe das opções do analisador que você pode configurar na definição do seu índice:
Você pode especificar um analisador de índice para o MongoDB Search para aplicar aos campos de string ao construir um índice utilizando a opção analyzer
em sua definição de índice do MongoDB Search.
A Pesquisa do MongoDB aplica o analisador de nível superior a todos os campos na definição do índice, a menos que você especifique um analisador diferente para um campo dentro da definição mappings.fields
para seu campo.
Se você omitir a analyzer
opção, o padrão do MongoDB Search será usar o analisador padrão.
1 { 2 "analyzer": "<analyzer-for-index>", 3 "mappings": { 4 "fields": { 5 "<string-field-name>": { 6 "type": "string", 7 "analyzer": "<analyzer-for-field>" 8 } 9 } 10 } 11 }
Você pode especificar um analisador de pesquisa para o MongoDB Search para aplicar ao texto de query usando a opção searchAnalyzer
em sua definição de índice do MongoDB Search.
Se você omitir a searchAnalyzer
opção, o MongoDB Search assumirá como analyzer
padrão o analisadorespecificado para a opção. Se você omitir ambas as opções, o padrão do MongoDB Search é usar o analisador padrão.
1 { 2 "searchAnalyzer": "<analyzer-for-query>", 3 "mappings": { 4 "dynamic": <boolean>, 5 "fields": { <field-definition> } 6 } 7 }
Você pode especificar um analisador alternativo para o MongoDB Search aplicar aos campos de string ao criar um índice usando a opção multi
em sua definição de índice do MongoDB Search.
Para usar o analisador alternativo em uma query do MongoDB Search, você deve especificar o nome do analisador alternativo no multi
campo do caminho da query do seu operador de query.
Para saber mais, consulte Multianalisador.
1 { 2 "mappings": { 3 "fields": { 4 "<string-field-name>": { 5 "type": "string", 6 "analyzer": "<default-analyzer-for-field>", 7 "multi": { 8 "<alternate-analyzer-name>": { 9 "type": "string", 10 "analyzer": "<alternate-analyzer-for-field>" 11 } 12 } 13 } 14 } 15 } 16 }
Você pode definir um ou mais analisadores personalizados para transformar, filtrar e agrupar sequências de caracteres usando a opção analyzers
no índice do MongoDB Search.
Para utilizar um analisador personalizado que você definiu, especifique o valor name
na definição do índice nas opções analyzer
, searchAnalyzer
ou multi.analyzer
.
Para saber mais, consulte Analisadores personalizados.
1 { 2 "mappings": { 3 "dynamic": <boolean>, 4 "fields": { <field-definition> } 5 }, 6 "analyzers": [ 7 { 8 "name": "<custom-analyzer-name>", 9 "tokenizer": { 10 "type": "<tokenizer-type>" 11 } 12 } 13 ] 14 }
Dica
Aprenda assistindo
Assista a este vídeo para ver como o MongoDB Search usa analisadores para dividir documentos em unidades pesquisáveis e criar um índice invertido.
Duração: 8 Minutos
Analisadores
O MongoDB Search fornece os seguintes analisadores integrados:
Analisador | Descrição |
---|---|
Usa o analisador padrão para todos os índices e queries do MongoDB Search. | |
Divide o texto em termos pesquisáveis onde quer que ele encontre um caractere que não seja uma letra. | |
Divide o texto em termos pesquisáveis onde quer que ele encontre um caractere de espaço em branco. | |
Indexa campos de texto como termos únicos. | |
Fornece um conjunto de analisadores de texto específicos do idioma. |
Se você não especificar um analisador na sua definição de índice, o MongoDB usará o analisador padrão.
Normalizadores
Os normalizadores produzem apenas um único token no final da análise. Você pode configurar normalizadores somente na definição de campo do tipo token Search do MongoDB . O MongoDB Search fornece os seguintes normalizadores:
Normalizador | Descrição |
---|---|
| Transforma o texto em campos de string em letras minúsculas e cria um token para toda a string. |
| Não realiza nenhuma transformação, mas ainda cria um único token . |
Saiba mais
Para saber mais sobre analisadores, consulte Analisando analisadores para criar o índice de pesquisa correto para seu aplicativo no MongoDB Developer Center.