Analisador múltiplo
Nesta página
Você pode usar o objeto multi
em sua definição de índice para especificar analisadores alternativos com os quais também indexar o campo. Quando indexa 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
. Para saber mais sobre como pesquisar com analisadores alternativos, consulte Construir um caminho de consulta.
Limitações
A opção de caminho do multi
está disponível somente para campos do tipo string.
O Atlas Search não suporta o aninhamento de várias camadas de objetos multi
.
Exemplo
O exemplo de definição de índice a seguir especifica um índice no campo title
na coleção sample_mflix.movies
usando o analisador standard
. A definição do índice também especifica o analisador de palavras-chave como um analisador alternativo para o campo title
, com o nome keywordAnalyzer
. O analisador do Keyword Analyzer indexa todo o campo como um único termo, portanto, ele retorna resultados somente se o termo de pesquisa e o campo especificado tiverem uma correspondência exata.
Se você carregou a collection no seu agrupamento, você poderá criar o índice de exemplo utilizando o Editor Visual ou o EditorJSON do na UI do Atlas. Depois de selecionar seu método de configuração preferido, selecione o reconhecimento de data center e a collection.
Clique em Refine Your Index para configurar seu índice.
Na seção Field Mappings, clique em Add Field para abrir a janela Add Field Mapping.
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 Multi Field para configurar outro analyzer no campo
title
.Insira
keywordAnalyzer
no campo Multi Field Name .Faça as seguintes alterações em Multi Field Properties:
Analisador de índice
Selecione
lucene.keyword
no menu suspenso se ainda não estiver selecionado.Analisador de pesquisa
Selecione
lucene.keyword
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.
1 { 2 "mappings": { 3 "dynamic": false, 4 "fields": { 5 "title": { 6 "type": "string", 7 "analyzer": "lucene.standard", 8 "multi": { 9 "keywordAnalyzer": { 10 "type": "string", 11 "analyzer": "lucene.keyword" 12 } 13 } 14 } 15 } 16 } 17 } Clique em Next.
Clique em Create Search Index.
A query a seguir usa o analisador alternativo, chamado keywordAnalyzer
, para o Atlas Search em busca de correspondências exatas na string The
Count of Monte Cristo
.
1 db.movies.aggregate([ 2 { 3 "$search": { 4 "text": { 5 "query": "The Count of Monte Cristo", 6 "path": { "value": "title", "multi": "keywordAnalyzer" } 7 } 8 } 9 }, 10 { 11 "$project": { 12 "title": 1, 13 "year": 1, 14 "_id": 0 15 } 16 } 17 ])
{ "title" : "The Count of Monte Cristo", "year" : 1934 } { "title" : "The Count of Monte Cristo", "year" : 1954 } { "title" : "The Count of Monte Cristo", "year" : 1998 }
Por outro lado, a mesma query usando o analyzer standard
encontraria todos os filmes com a palavra the
ou Count
ou of
ou Monte
ou Cristo
no título.
O Atlas Search cria os seguintes tokens (termos pesquisáveis) para os documentos nos resultados utilizando os analisadores:
Título | Tokens de analisador padrão | Tokens do analisador de palavras-chave |
---|---|---|
|
|
|