Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / / /

Analisador de palavras-chave

O analisador keyword aceita uma string ou array de strings como parâmetro e as indexa como um único termo (token). Somente as correspondências exatas no campo são retornadas. Ele deixa todo o texto em suas letras maiúsculas e minúsculas originais.

Dica

Para correspondência exata, em vez de usar o analisador keyword , você pode indexar o campo como o tipo detoken do Atlas Search e usar o operador equals para pesquisar o campo.

Você pode ver os tokens que o analisador keyword cria para uma string estática integrada na interface de usuário do Atlas Visual Editor quando você usa Refine Your Index. A seção Index Configurations exibe o índice e os tokens de pesquisa que o analisador keyword cria se você expandir View text analysis of your selected index configuration para ajudá-lo a selecionar o analisador a ser usado em seu índice.

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.

A seguinte definição de índice de exemplo especifica um índice no campo title na coleção sample_mflix.movies utilizando o analisador keyword. Se você carregou a coleção no seu cluster, você poderá criar o índice de exemplo utilizando o Atlas UI Visual Editor ou o JSON Editor. Após selecionar o método de configuração de sua preferência, selecione o banco de dados e a coleção.

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Field Mappings, clique em Add Field para abrir a janela Add Field Mapping.

  3. Clique em Customized Configuration.

  4. Selecione title no menu suspenso Field Name.

  5. Clique no menu suspenso Data Type e selecione String se ainda não estiver selecionado.

  6. Expanda o String Properties e faça as seguintes alterações:

    Analisador de índice

    Selecione lucene.keyword no menu suspenso.

    Analisador de pesquisa

    Selecione lucene.keyword no menu suspenso.

    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.

  7. Clique em Add.

  8. Clique em Save Changes.

  9. Clique em Create Search Index.

  1. Substitua a definição de índice padrão pela seguinte definição de índice.

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.keyword"
    }
    }
    }
    }
  2. Clique em Next.

  3. Clique em Create Search Index.

A query abaixo procura a frase Class Action no campo title.

db.movies.aggregate([
{
"$search": {
"text": {
"query": "Class Action",
"path": "title"
}
}
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{
title: 'Class Action'
}
]

O Atlas Search devolveu o documento porque correspondeu o termo de query Class Action ao único token Class Action que ele cria para o texto no campo utilizando o analisador lucene.keyword. Por outro lado, o Atlas Search não retorna quaisquer resultados para a seguinte query:

db.cases.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
}
])

Muitos documentos na coleção contêm a string action, mas o analisador keyword só corresponde aos documentos em que o termo de pesquisa corresponde exatamente a todo o conteúdo do campo. Para a query anterior, o analisador keyword não retornaria nenhum resultado. No entanto, se indexou o campo utilizando o Analisador Padrão ou o Analisador Simples, o Atlas Search retornaria vários documentos nos resultados, incluindo o documento com o valor do campo de título Class Action, pois criaria tokens semelhantes ao seguinte, o que então corresponderia ao termo de query:

Analisador
Tokens de saída
Partidas action
Partidas Class Action

Tokens do analisador de palavras-chave

Class Action

X

Tokens de analisador padrão

class, action

Tokens de analisador simples

class, action

Voltar

Whitespace