Elasticsearch: crie sua primeira search query com Python
Visão geral
Introdução ao Elasticsearch
O Elasticsearch oferece uma variedade de técnicas de busca, a começar pelo BM25, o padrão do setor para busca textual. Ele também oferece busca semântica com modelos de AI, melhorando os resultados com base no contexto e na intenção.
O Elasticsearch fornece clientes oficiais para várias linguagens de programação, incluindo Python, Rust, Java, JavaScript e outras. Esses clientes oferecem suporte completo à API para indexação, busca e clustering. Eles são otimizados para desempenho e mantidos atualizados com as versões do Elasticsearch, garantindo compatibilidade e segurança.
Vamos começar
Neste exemplo, você indexará alguns documentos e os consultará usando Python. Ao fim deste guia, você terá aprendido como conectar um aplicativo de backend ao Elasticsearch para responder às suas consultas.
Crie um projeto do Elastic Cloud
Comece com uma avaliação de 14 dias. Depois de acessar e criar uma conta, siga as etapas abaixo para saber como executar seu primeiro projeto Elasticsearch Serverless, selecione Elasticsearch.
Em seguida, crie Propósito geral, dê a ele um nome como Meu projeto e crie-o.

Vamos criar nosso primeiro índice do Elasticsearch, e podemos chamá-lo de meu-índice. Selecione Criar meu índice.
Você criou seu primeiro índice! Em seguida, crie uma chave de API para que seu aplicativo possa se comunicar com o Elasticsearch. Selecione uma linguagem. Para este exemplo, use Python.
Comece a introduzir dados no Elasticsearch
No seu terminal, instale o cliente Elasticsearch usando pip:
pip install elasticsearch
Copie sua chave de API do canto superior direito e adicione-a à configuração do cliente junto com o url do projeto. Já podemos criar os mapeamentos para o nosso índice, que terá apenas um campo de texto chamado criativamente de "text".
from elasticsearch import Elasticsearch
client = Elasticsearch(
"https://my-project-bff300.es.us-east-1.aws.elastic.cloud:443",
api_key="YOUR-API-KEY"
)
index_name = "my-index"
mappings = {
"properties": {
"text": {
"type": "text"
}
}
}
mapping_response = client.indices.put_mapping(index=index_name, body=mappings)
print(mapping_response)
Então podemos finalmente usar solicitações em massa para enviar dados para o Elasticsearch, vamos indexar 3 documentos usando uma solicitação _bulk. Lembre-se de usar solicitações em massa ao indexar centenas a bilhões de documentos também, pois essa é a opção preferida ao indexar grandes quantidades de documentos no Elasticsearch.
docs = [
{
"text": "Yellowstone National Park is one of the largest national parks in the United States. It ranges from the Wyoming to Montana and Idaho, and contains an area of 2,219,791 acress across three different states. Its most famous for hosting the geyser Old Faithful and is centered on the Yellowstone Caldera, the largest super volcano on the American continent. Yellowstone is host to hundreds of species of animal, many of which are endangered or threatened. Most notably, it contains free-ranging herds of bison and elk, alongside bears, cougars and wolves. The national park receives over 4.5 million visitors annually and is a UNESCO World Heritage Site."
},
{
"text": "Yosemite National Park is a United States National Park, covering over 750,000 acres of land in California. A UNESCO World Heritage Site, the park is best known for its granite cliffs, waterfalls and giant sequoia trees. Yosemite hosts over four million visitors in most years, with a peak of five million visitors in 2016. The park is home to a diverse range of wildlife, including mule deer, black bears, and the endangered Sierra Nevada bighorn sheep. The park has 1,200 square miles of wilderness, and is a popular destination for rock climbers, with over 3,000 feet of vertical granite to climb. Its most famous and cliff is the El Capitan, a 3,000 feet monolith along its tallest face."
},
{
"text": "Rocky Mountain National Park is one of the most popular national parks in the United States. It receives over 4.5 million visitors annually, and is known for its mountainous terrain, including Longs Peak, which is the highest peak in the park. The park is home to a variety of wildlife, including elk, mule deer, moose, and bighorn sheep. The park is also home to a variety of ecosystems, including montane, subalpine, and alpine tundra. The park is a popular destination for hiking, camping, and wildlife viewing, and is a UNESCO World Heritage Site."
}
]
bulk_response = helpers.bulk(client, docs, index=index_name)
print(bulk_response)
Você deverá conseguir ver os documentos no Elasticsearch.
Como trabalhar com o Elasticsearch
Crie sua consulta
Crie um novo script (por exemplo, search.py), que define uma consulta e executa a seguinte solicitação de busca:
FROM my-index
| WHERE MATCH(text, "yosemite")
| LIMIT 5
Adicione esta consulta dentrode client.esql.query:
from elasticsearch import Elasticsearch
client = Elasticsearch(
"https://my-project-bff307.es.us-east-1.aws.elastic.cloud:443",
api_key="YOUR-API-KEY"
)
# Execute the search query
response = client.esql.query(
query="""
FROM my-index
| WHERE MATCH(text, "yosemite")
| LIMIT 5
""",
format="csv"
)
print(response)
Confira o resultado:
"O Parque Nacional de Yosemite é um Parque Nacional dos Estados Unidos que cobre mais de 750 mil acres na Califórnia. Patrimônio Mundial da Unesco, o parque é mais conhecido pelos penhascos de granito, cachoeiras e sequoias gigantes. Yosemite recebe mais de quatro milhões de visitantes na maioria dos anos, com um pico de cinco milhões de visitantes em 2016. O parque é o lar de uma variada vida selvagem, incluindo veados-mula, ursos-negros e o carneiro-selvagem de Sierra Nevada, ameaçado de extinção. O parque tem 1.200 milhas quadradas de natureza selvagem e é um destino procurado por alpinistas graças aos mais de 3.000 pés de granito vertical para escalar. O penhasco mais famoso é o El Capitan, um monólito de 3.000 pés ao longo da face mais alta."
Agora você já pode usar o cliente para consultar o Elasticsearch em qualquer backend Python, como Flask, Django, etc. Saiba mais na documentação Elasticsearch Python Client.
Próximas etapas
Agradecemos o tempo dedicado à configuração da busca semântica para seus dados com o Elastic Cloud. Ao iniciar sua jornada com o Elastic, entenda alguns componentes operacionais, de segurança e de dados que você deve gerenciar como usuário ao fazer a implantação no seu ambiente.
Tudo pronto para começar? Faça uma avaliação gratuita de 14 dias no Elastic Cloud ou confira estes aprendizados práticos de 15 minutos no Search AI 101.