Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver Pymongo

Atlas Search

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

Para saber mais sobre a fase de pipeline $search, 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 somente para coleções hospedadas em clusters do MongoDB Atlas que executam o MongoDB v4.2 ou posterior que são abrangidos por um índice do Atlas Search. Para saber mais sobre a configuração necessária e a funcionalidade desse operador, consulte a documentação do Atlas Search.

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

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

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

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 Atlas Search, consulte o guia Operadores e coletores na documentação do MongoDB Atlas.

Para mais informações sobre o Atlas Search e para ver mais exemplos de consultas, veja a documentação do Atlas Search.

Se você quiser realizar pesquisas vetoriais nos seus dados armazenados no Atlas, deve usar o Atlas Vector Search. Para aprender mais sobre o Atlas Vector Search, consulte a documentação do Atlas Vector Search.

Voltar

Executar um comando de banco de dados

Próximo

Atlas Vector Search

Nesta página