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.
Exemplo
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.
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
titleno 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.standardno menu suspenso se ainda não estiver selecionado.Analisador de pesquisa
Selecione
lucene.standardno menu suspenso se ainda não estiver selecionado.Opções de índice
Use o
offsetspadrão.Store
Use o
truepadrão.Ignorar acima
Manter a configuração padrão.
Normas
Use o
includepadrã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.
1 db.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.
Clique no botão Query para o seu índice.
Clique em Edit Query para editar a query.
Clique em na barra de query e selecione o banco de dados e a coleção.
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 |
|---|---|---|---|
|
|
|
|
|
|
|
|
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
actionporque o analisador dekeywordcorresponde apenas a documentos nos quais o termo de pesquisa corresponde a todo o conteúdo do campo (Action JacksoneClass Action) exatamente.Whitespace Analyzer, a MongoDB Search não corresponderia aos documentos nos resultados do termo de consulta
actionporque o analisadorwhitespacetokeniza o valor do campotitleem seu caso original (Action) e o termo de consulta tem as letras minúsculasaction, que não corresponde ao token do analisadorwhitespace.