Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

MongoDB Search

Neste guia, você aprenderá a executar uma query de um índice de pesquisa do MongoDB Search e a usar a funcionalidade avançada de pesquisa de texto completo em seus aplicativos do PyMongo. Você pode executar query de um índice de pesquisa usando uma fase do pipeline de agregação $search.

Para saber mais sobre a $search pipeline stage, consulte o guia $search no manual do MongoDB Server.

Observação

Disponível apenas no Atlas para MongoDB v4.2 e posterior

O operador de pipeline de agregação $search está disponível apenas para coleções hospedadas em clusters MongoDB Atlas rodando MongoDB v4.2 ou posteriores que sejam cobertas por um índice do MongoDB Search. Para aprender mais sobre como configurar e a funcionalidade desse operador, consulte a documentação do MongoDB Search.

Os exemplos neste guia usam a collection sample_mflix.movies dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte Introdução ao PyMongo.

Antes de executar uma pesquisa em uma coleção do Atlas, primeiro você deve criar um índice de pesquisa MongoDB na coleção. Um índice de pesquisa MongoDB é uma estrutura de dados que categoriza os dados em um formato pesquisável. Para aprender como criar um índice de pesquisa do MongoDB, consulte Índices de pesquisa do MongoDB Search e Vector Search.

Para usar a fase do pipeline de agregação $search, você deve especificar um operador de query do MongoDB pesquisa que indique o tipo de query que você deseja executar. Você também pode, opcionalmente, especificar um coletor que agrupa resultados por valores ou faixas. Para visualizar uma tabela de todos os operadores e coletores disponíveis com o MongoDB pesquisa, consulte Usar operadores e coletores em queries de pesquisa do MongoDB pesquisa.

O exemplo a seguir usa o operador compound para combinar vários operadores em uma única consulta. Para saber mais sobre o operador compound, consulte o guia do operador Composto na documentação do MongoDB Atlas.

A query tem os seguintes critérios de pesquisa:

  • O campo genres não deve conter Comedy.

  • O campo title deve conter a string New York.

A query também inclui as seguintes fases:

  • $limitpara limitar a saída a 10 resultados.

  • $project, para excluir todos os campos, exceto title e adicionar um campo chamado score.

client = pymongo.MongoClient("<connection-string>")
result = client["sample_mflix"]["movies"].aggregate([
{
"$search": {
"index": "pymongoindex",
"compound": {
"mustNot": [
{
"text": {
"query": [
"Comedy"
],
"path": "genres"
}
}
],
"must": [
{
"text": {
"query": [
"New York"
],
"path": "title"
}
}
],
}
}
},
{ "$limit": 10 },
{
"$project": {
"_id": 0,
"title": 1,
"score": { "$meta": "searchScore" }
}
}
])
for i in result:
print(i)
{'title': 'New York, New York', 'score': 6.786379814147949}
{'title': 'New York', 'score': 6.258603096008301}
{'title': 'New York Doll', 'score': 5.381444931030273}
{'title': 'Escape from New York', 'score': 4.719935417175293}
{'title': 'Autumn in New York', 'score': 4.719935417175293}
{'title': 'Sleepless in New York', 'score': 4.719935417175293}
{'title': 'Gangs of New York', 'score': 4.719935417175293}
{'title': 'Sherlock Holmes in New York', 'score': 4.203253746032715}
{'title': 'New York: A Documentary Film', 'score': 4.203253746032715}
{'title': 'An Englishman in New York', 'score': 4.203253746032715}

Para saber mais sobre os operadores disponíveis do MongoDB Pesquisa, consulte o guia Operadores e coletores na documentação do MongoDB Atlas.

Para obter mais informações sobre a pesquisa MongoDB e para ver mais exemplos de query, consulte a documentação da pesquisa MongoDB.

Se você deseja realizar pesquisas vetoriais em seus dados armazenados no Atlas, deve usar o MongoDB Vector Search. Para saber mais sobre a pesquisa vetorial do MongoDB, consulte a documentação da pesquisa vetorial do MongoDB.