Menu Docs
Página inicial do Docs
/ /

Analisador padrão

O analisador standard é o padrão para todos os índices e queries do MongoDB Search. Ele divide o texto em termos com base nos limites das palavras, o que o torna neutro em termos de linguagem 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.

Se você selecionar Refine Your Index, a UI 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 UI do Atlas exibirá o índice e os tokens de pesquisa que o analisador standard gera para cada string de amostra. É possível ver os tokens que o analisador standard cria para um documento de amostra integrado e uma cadeia de query ao criar ou editar um índice na UI do Atlas Visual Editor.

Importante

O MongoDB Search não indexará campos de string em que os tokens do analisador excedam 32766 bytes de tamanho. Se estiver usando o analisador de palavras-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 title campo na coleçãosample_mflix.movies utilizando o standard analisador. Para acompanhar esse exemplo, carregue os dados de amostra em seu cluster e use mongosh ou navegue até a Create a Search Index página na UI do Atlas seguindo as etapas do tutorial Criar um índice de pesquisa do MongoDB .

Em seguida, usando a movies collection como sua fonte de dados, siga o procedimento de exemplo para criar um índice a partir de ou da UI do mongosh Atlas Visual Editor JSON editorou.


➤ Use o menu suspenso Selecione seu idioma para definir a interface para o exemplo nesta página.


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

  2. Na seção Index Configurations, alterne Dynamic Mapping para off.

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

  4. Clique em Customized Configuration.

  5. Selecione title no menu suspenso Field Name.

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

  7. 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.

  8. Clique em Add.

  9. Clique em Save Changes.

  10. 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.standard"
    }
    }
    }
    }
  2. Clique em Next.

  3. Clique em Create Search Index.

1db.movies.createSearchIndex(
2 "default",
3 {
4 "mappings": {
5 "fields": {
6 "title": {
7 "type": "string",
8 "analyzer": "lucene.standard"
9 }
10 }
11 }
12 }
13)

A query a seguir procura o campo title em busca do termo action e limita a saída a dois resultados.

  1. Clique no botão Query para o seu índice.

  2. Clique em Edit Query para editar a query.

  3. Clique em na barra de query e selecione o banco de dados e a coleção.

  4. Substitua a query padrão pelo seguinte e clique em Find:

    [
    {
    "$search": {
    "text": {
    "query": "action",
    "path": "title"
    }
    }
    }
    ]
    SCORE: 4.001246452331543 _id: "573a1398f29313caabceac7f"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Jericho "Action" Jackson is a Detroit police sergeant who was demoted …"
    genres: Array (3)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-08-20 00:24:08.470000000"
    num_mflix_comments: 2
    plot: "Vengence drives a tough Detroit cop to stay on the trail of a power hu…"
    poster: "https://m.media-amazon.com/images/M/MV5BZWFhNmI3OWQtOTU5Zi00ODA3LWExNj…"
    rated: "R"
    released: 1988-02-12T00:00:00.000+00:00
    runtime: 96
    title: "Action Jackson"
    tomatoes: Object
    type: "movie"
    writers: Array (1)
    year: 1988
    SCORE: 4.001246452331543 _id: "573a1399f29313caabcec6b7"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Jeb Ward is an attorney who specializes in whistle blower, David vs. Goliath cases. When a major auto manufacturer is accused of knowingly marketing a defective car, Ward takes on the case, risking everything."
    genres: Array (2)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-09-06 00:42:51.167000000"
    metacritic: 58
    num_mflix_comments: 2
    plot: "Jeb Ward is an attorney who specializes in whistle blower, David vs. Goliath cases."
    poster: "https://m.media-amazon.com/images/M/MV5BNWY5Mjk4ZmItMTAzYS00NWE3LWEzYz…"
    rated: "R"
    released: 1991-03-15T00:00:00.000+00:00
    runtime: 110
    title: "Class Action"
    tomatoes: Object
    type: "movie"
    writers: Array (3)
    year: 1991
    SCORE: 4.001246452331543 _id: "573a13b0f29313caabd333e7"
    awards: Object
    cast: Array (4)
    countries: Array (2)
    directors: Array (1)
    fullplot: "Vishi is a local goon who basically likes beating up people to get his way. He falls in love with Khushi, but his life takes a turn when he crosses paths with a ruthless mafia kingpin."
    genres: Array (3)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-09-10 17:20:55.697000000"
    num_mflix_comments: 1
    plot: "In order to escape crime and clutches of a ruthless mafia, a Bangkok based goon seeks help from his lookalike, a Mumbai based criminal."
    released: 2014-12-05T00:00:00.000+00:00
    runtime: 144
    title: "Action Jackson"
    tomatoes: Object
    type: "movie"
    writers: Array (3)
    year: 2014
    SCORE: 4.001246452331543 _id: "573a13d2f29313caabd913dc"
    awards: Object
    countries: Array (1)
    directors: Array (1)
    genres: Array (2)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-06-15 03:15:33.967000000"
    num_mflix_comments: 0
    released: 2011-01-28T00:00:00.000+00:00
    runtime: 45
    title: "Slow Action"
    tomatoes: Object
    type: "movie"
    writers: Array (1)
    year: 2011
    SCORE: 3.440462112426758 _id: "573a1399f29313caabcedcb0"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Young Danny Madigan is a big fan of Jack Slater, a larger-than-life action hero. When Danny is given a magic ticket, he is transported into Slater's latest adventure."
    genres: Array (3)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-08-31 00:11:25.920000000"
    metacritic: 44
    num_mflix_comments: 0
    plot: "With the help of a magic ticket, a young film fan is transported into the fictional world of his favorite action movie character."
    poster: "https://m.media-amazon.com/images/M/MV5BNjdhOGY1OTktYWJkZC00OGY5LWJhY2…"
    rated: "PG-13"
    released: 1993-06-18T00:00:00.000+00:00
    runtime: 130
    title: "Last Action Hero"
    tomatoes: Object
    type: "movie"
    writers: Array (4)
    year: 1993
    SCORE: 3.440462112426758 _id: "573a139af29313caabcf0e84"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Jan Schlichtmann, a tenacious lawyer, is addressed by a group of families whose children have died from leukemia. He takes on a case against two large companies accused of dumping toxic waste."
    genres: Array (1)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-09-07 00:21:34.950000000"
    metacritic: 68
    num_mflix_comments: 0
    plot: "The families of children who died sue two companies for dumping toxic waste."
    poster: "https://m.media-amazon.com/images/M/MV5BZmEzNjhiZWEtNTM5OS00ZmQyLThhYj…"
    rated: "PG-13"
    released: 1999-01-08T00:00:00.000+00:00
    runtime: 115
    title: "A Civil Action"
    tomatoes: Object
    type: "movie"
    writers: Array (2)
    year: 1998
    SCORE: 2.687220573425293 _id: "573a1398f29313caabcead32"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Colonel James Braddock has a Vietnamese wife who was supposed to leave Vietnam with him, but was left behind. Years later, he returns to rescue her and their son."
    genres: Array (2)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-08-17 00:28:26.627000000"
    num_mflix_comments: 0
    plot: "Colonel James Braddock has a Vietnamese wife who was supposed to leave Vietnam with him, but was left behind."
    poster: "https://m.media-amazon.com/images/M/MV5BZTRjODU0MTUtMjBmMi00ZTBmLTk2MD…"
    rated: "R"
    released: 1988-03-02T00:00:00.000+00:00
    runtime: 101
    title: "Braddock: Missing in Action III"
    tomatoes: Object
    type: "movie"
    writers: Array (5)
    year: 1988
    SCORE: 2.687220573425293 _id: "573a13a9f29313caabd1f502"
    awards: Object
    cast: Array (4)
    countries: Array (2)
    directors: Array (1)
    fullplot: "Bugs Bunny and Daffy Duck are up to their feuding ways again. Tired of all the attention going to Bugs, Daffy persuades the studio to let him go off on his own."
    genres: Array (3)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-08-28 00:30:31.080000000"
    metacritic: 64
    num_mflix_comments: 1
    plot: "The Looney Tunes search for a man's missing father and the mythical Blue Monkey diamond."
    poster: "https://m.media-amazon.com/images/M/MV5BMTkxNDk5MDQ2MF5BMl5BanBnXkFtZT…"
    rated: "PG"
    released: 2003-11-14T00:00:00.000+00:00
    runtime: 91
    title: "Looney Tunes: Back in Action"
    tomatoes: Object
    type: "movie"
    writers: Array (1)
    year: 2003
    SCORE: 2.4220800399780273 _id: "573a13bdf29313caabd5acfe"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "Fueled by the belief that another world is possible, acclaimed filmmaker Velcrow Ripper takes us on a journey through the spiritual activism movement."
    genres: Array (1)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-08-12 00:50:56"
    num_mflix_comments: 1
    plot: "Captures the exciting movement of Spiritual Activism that is exploding around the planet."
    poster: "https://m.media-amazon.com/images/M/MV5BMTI2MjM2Mzk2NV5BMl5BanBnXkFtZT…"
    released: 2008-10-01T00:00:00.000+00:00
    runtime: 90
    title: "Fierce Light: When Spirit Meets Action"
    tomatoes: Object
    type: "movie"
    writers: Array (1)
    year: 2008
db.movies.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
},
{
"$limit": 2
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{
title: 'Action Jackson'
},
{
title: 'Class Action'
}
]

O MongoDB Search retornou esses documentos porque fez a correspondência entre o termo de query action e o token action para os documentos, que o MongoDB 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 a seguir mostra os tokens (termos pesquisáveis) que o MongoDB Search cria usando o Analisador Padrão e, por outro lado, os tokens que o MongoDB 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

Action Jackson

action, jackson

Action Jackson

Action, Jackson

Class Action

class, action

Class Action

Class, Action

Se você indexar o campo utilizando o:

  • Analisador de palavras-chave, a pesquisa do MongoDB não corresponderia aos documentos nos resultados do termo de query action porque o analisador de keyword corresponde apenas a documentos nos quais o termo de pesquisa corresponde a todo o conteúdo do campo (Action Jackson e Class Action) exatamente.

  • Whitespace Analyzer, a MongoDB Search não corresponderia aos documentos nos resultados do termo de consulta action porque o analisador whitespace tokeniza o valor do campo title em seu caso original (Action) e o termo de consulta tem as letras minúsculas action, que não corresponde ao token do analisador whitespace.

Voltar

Analisadores

Nesta página