Caipyra 2025

Elasticsearch - um banco para quem lida com textos
21/06/2025 , Sala Quentão

A escolha do banco de dados é essencial no desenvolvimento. Vou apresentar Elasticsearch , um banco visado para pesquisa de texto e para grande quantidade de dados


Ao longo dos anos, o Python demonstrou ser extremamente versátil, sendo utilizada em multiplas tarefas - de IA ate calculos simples. Tais tarefas, apesar de parecerem áreas distintas, possuem em comum a utilização e manipulação de dados. Manipular dados se tornou um grande desafio devido à imensa variedade e quantidade de informações disponíveis. Por conta disso, a escolha da melhor forma de armazenar esses dados tornou-se um passo essencial para o sucesso de qualquer solução tecnológica.
Para encaminhar solucoes desse problema, Eric Redmond e seus colegas lançaram o famoso livro 7 Databases in 7 Weeks (7 Bancos de Dados em 7 Semanas), em que abordam as aplicaçoes desses 7 bancos de dados open-source em diferentes cenários. Inspirado por este livro, gostaria de discutir um banco que não é tratado no livro : Elasticsearch.
O Elasticsearch, semelhante ao MongoDB, é um banco que armazena documentos , porém possui ferramentas especializadas de busca textual , graças ao apache lucene. É possível fazer diversas configurações de buscas, como configurar termos semelhantes; busca por bigrama e até mesmo busca utilizando correlação de cosseno (busca muito utilizado em aplicações de LLM).
Esta palestra apresentará o propósito de cada um desses bancos de dados, explicará como instalá-los e será demonstrado como conectá-los a uma aplicação Python - seja ela uma aplicação web (Django/FastAPI), de engenharia de dados (Airflow/Prefect) ou até mesmo um simples script. Com essa abordagem, espero compartilhar conhecimentos que ajudem outros profissionais a escolher a ferramenta certa para seus projetos e explorar ao máximo o potencial que esses bancos de dados oferecem.


Quais conhecimentos prévios são necessários para que seja possível acompanhar bem a sua atividade?

Python iniciante ( 1~2 anos de experiência)
Conhecimento em criar função
Tipos de dados (dicionário, string, inteiro, float)
Orientação ao objeto (criar classe utilizando python)

O que as pessoas que participarem podem esperar aprender na sua atividade?

Identificar problemas que podem ser resolvidos da melhor maneira utilizando um banco NoSQL
Conhecimentos básico de Elastisearch
Utilização de bibliotecas low-level para conectar com Elastisearch
Utilização de bibliotecas high-level apra conectar com Elastisearch

Escolha uma ou mais áreas em que essa proposta se encaixa

Ciência e Análise de Dados, Desenvolvimento Web, Arquitetura de software, Desenvolvimento de Aplicações Desktop

Veja também:

Sou Físico, com mestrado em modelos matemáticos aplicados em sistemas biológicos. Trabalho com ciência de dados e engenharia de dados na Faber-castell e desenvolvedor web na empresa Itera.