Analisador padrão
O analisador standard
é o padrão para todos os índices e queries do Atlas Search. Divide o texto em termos baseados em limites de palavras, o que o torna neutro em idiomas para a maioria dos casos de uso. Converte todos os termos em minúsculas e remove a pontuação. Ela fornece tokenização baseada em gramática que reconhece endereços de e-mail, acrônimos, caracteres chinês-japonês-coreanos, alfanuméricos e muito mais.
Você pode ver os tokens que o analisador standard
gera para um documento integrado de amostra e uma string da query quando você cria ou edita um índice na IU do Atlas Visual Editor. Se você selecionar Refine Your Index, a IU do Atlas exibirá uma seção intitulada View text analysis of your selected index configuration dentro da seção Index Configurations. Se você expandir esta seção, a IU do Atlas exibirá o índice e os tokens de pesquisa que o analisador standard
gera para cada string de amostra.
Importante
O Atlas Search não indexará campos de string em que os tokens do analisador excedam 32766 bytes de tamanho. Se estiver usando o analisador de palavra-chave, os campos de string que excederem 32766 bytes não serão indexados.
Exemplo
A seguinte definição de índice de exemplo especifica um índice no campo title
na coleção sample_mflix.movies utilizando o analisador standard
. Para seguir este exemplo, carregue os dados de amostra no seu cluster e navegue até a página Create a Search Index na IU do Atlas, seguindo as etapas do tutorial Criar um Índice de Pesquisa do Atlas. Em seguida, selecione a coleção minutes
como sua fonte de dados e siga o procedimento de exemplo para criar um índice no Visual Editor ou no JSON editor.
Clique em Refine Your Index para configurar seu índice.
Na seção Index Configurations, alterne Dynamic Mapping para off.
Na seção Field Mappings, clique em Add Field Mapping para abrir a janela Add Field Mapping.
Clique em Customized Configuration.
Selecione
title
no menu suspenso Field Name.Clique no menu suspenso Data Type e selecione String se ainda não estiver selecionado.
Expanda o String Properties e faça as seguintes alterações:
Analisador de índice
Selecione
lucene.standard
no menu suspenso se ainda não estiver selecionado.Analisador de pesquisa
Selecione
lucene.standard
no menu suspenso se ainda não estiver selecionado.Opções de índice
Use o
offsets
padrão.Store
Use o
true
padrão.Ignorar acima
Manter a configuração padrão.
Normas
Use o
include
padrão.Clique em Add.
Clique em Save Changes.
Clique em Create Search Index.
Substitua a definição de índice padrão pela seguinte definição de índice.
{ "mappings": { "fields": { "title": { "type": "string", "analyzer": "lucene.standard" } } } } Clique em Next.
Clique em Create Search Index.
A query a seguir procura o campo title
em busca do termo action
e limita a saída a dois resultados.
db.movies.aggregate([ { "$search": { "text": { "query": "action", "path": "title" } } }, { "$limit": 2 }, { "$project": { "_id": 0, "title": 1 } } ])
[ { title: 'Action Jackson' }, { title: 'Class Action' } ]
O Atlas Search retornou esses documentos porque fez a correspondência entre o termo de query action
e o token action
para os documentos, que o Atlas Search criou fazendo o seguinte para o texto no campo title
usando o analisador lucene.standard
:
Converta o texto em minúsculas.
Divida o texto com base nos limites das palavras e crie tokens separados.
A tabela seguinte mostra os tokens (termos pesquisáveis) que o Atlas Search cria utilizando o Analisador Padrão e, por outro lado, os tokens que o Atlas Search cria para o Analisador de Palavra-chave e o Analisador de Espaço em Branco para os documentos nos resultados:
Título | Tokens de analisador padrão | Tokens do analisador de palavras-chave | Tokens do analisador de espaço em branco |
---|---|---|---|
|
|
|
|
|
|
|
|
Se você indexar o campo utilizando o:
Analisador de palavras-chave, o Atlas Search não corresponderia aos documentos nos resultados do termo de query
action
porque o analisador dekeyword
corresponde apenas a documentos nos quais o termo de pesquisa corresponde exatamente a todo o conteúdo do campo (Action Jackson
eClass Action
) exatamente.Whitespace Analyzer, o Atlas Search não corresponderia aos documentos nos resultados para o termo de consulta
action
porque o analisadorwhitespace
tokeniza o valor do campotitle
em seu caso original (Action
) e oaction
tem owhitespace
em minúsculas, que não corresponde ao token do analisador .