O Elasticsearch é um mecanismo de busca e análise distribuído, amplamente utilizado para indexação, pesquisa e análise de grandes volumes de dados. Ele é baseado no Apache Lucene e é frequentemente utilizado em aplicações como busca textual, monitoramento de logs e análise de dados em tempo real.
1. Instalação e Configuração Básica
Antes de utilizarmos o Elasticsearch, é necessário instalá-lo. Em sistemas baseados em Linux, podemos utilizar o seguinte comando para instalá-lo via pacote Debian:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-amd64.deb
sudo dpkg -i elasticsearch-8.0.0-amd64.deb
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Após a instalação, o Elasticsearch estará disponível na porta 9200 por padrão.
2. Indexação de Dados
Para armazenar dados no Elasticsearch, utilizamos documentos JSON. Vamos criar um índice chamado “clientes” e adicionar um documento a ele:
curl -X POST "localhost:9200/clientes/_doc/1" -H "Content-Type: application/json" -d'
{
"nome": "João da Silva",
"idade": 30,
"cidade": "São Paulo"
}'
Se o comando for bem-sucedido, o Elasticsearch responderá com um JSON confirmando a indexação.
3. Consulta Básica
Para buscar os dados armazenados, utilizamos a API de busca do Elasticsearch:
curl -X GET "localhost:9200/clientes/_doc/1"
Isso retornará o documento previamente armazenado.
4. Pesquisa Avançada
Podemos realizar buscas mais sofisticadas usando a linguagem de consulta do Elasticsearch. O exemplo abaixo busca clientes com o nome “João”:
curl -X GET "localhost:9200/clientes/_search" -H "Content-Type: application/json" -d'
{
"query": {
"match": {
"nome": "João"
}
}
}'
O Elasticsearch irá retornar todos os documentos que contêm “João” no campo “nome”.
5. Agregação de Dados
O Elasticsearch permite a agregação de dados, como contar quantos clientes existem em cada cidade:
curl -X GET "localhost:9200/clientes/_search" -H "Content-Type: application/json" -d'
{
"size": 0,
"aggs": {
"clientes_por_cidade": {
"terms": {
"field": "cidade.keyword"
}
}
}
}'
Isso retornará um agrupamento com a quantidade de clientes por cidade.
6. Monitoramento de Logs
O Elasticsearch é amplamente usado para monitoramento de logs. Combinado com o Logstash e o Kibana, é possível criar dashboards e analisar logs de servidores em tempo real.
Exemplo de um documento de log indexado no Elasticsearch:
curl -X POST "localhost:9200/logs/_doc" -H "Content-Type: application/json" -d'
{
"timestamp": "2025-02-15T10:00:00",
"level": "ERROR",
"message": "Falha ao conectar ao banco de dados",
"service": "backend"
}'
Conclusão
O Elasticsearch é uma ferramenta poderosa para busca e análise de dados. Ele pode ser utilizado para indexação de textos, monitoramento de logs e análise de grandes volumes de informação de forma eficiente. Com sua escalabilidade e integração com outras ferramentas como Logstash e Kibana, ele se tornou essencial para diversas aplicações empresariais e sistemas de busca.