1. O documento descreve o Elasticsearch, incluindo o que é (mecanismo de busca e análise de dados distribuído), seu histórico (desenvolvido sobre o Apache Lucene e lançado em 2010) e conceitos-chave (como clusters, nodes, indexes e documents).
2. Apresenta casos comuns de uso do Elasticsearch, como consultas de texto, relevância de resultados, observabilidade e gerenciamento de logs.
3. Discutem vários tipos de queries que podem ser feitas no Elasticsearch, como consultas por ID, parâmetro, em todos os
3. • É um mecanismo de busca e análise de dados distribuído;
• Desenvolvido sobre o Apache Lucene;
• Lançado em 2010 pela Elasticsearch N.V. (atualmente Elastic);
• Possui um conjunto de REST APIs;
• Integrante da ELK Stack.
Elasticsearch?
4. Valorização do log
Ciclo de um desenvolvedor
1 2 3 4 5
Extração do
log do
container ou
da máquina
virtual
Armazena
o log da
response
no banco
de dados
Armazena o
log da
response e
da request
no banco de
dados
Cria um
banco de
dados NoSQL
para logs
Armazena log
em um
mecanismo
inteligente -
Elasticsearch
7. 1
Cluster
Grupo de nós
(servidores) que
guardam dados.
3
Index
Agrupamento de
documentos.
Análogo ao conceito
de base de dados
em SQL.
2
Node
Servidor individual de
armazenamento de
dados.
Participa de um cluster.
8. 4
Shards
Subgrupo de
documentos de um
index.
Um index pode ter
vários shards.
6
Document
Objeto JSON com
dados. Unidade de
informação a ser
indexada.
5
Type
Definição de um
Schema de um Index.
Análogo ao conceito de
tabela em SQL.
20. • Consultas de texto que exijam alta velocidade;
• Relevância de resultados;
• Observabilidade;
• Geolocalização;
• O conjunto da obra;
• Gerenciamento de logs.
• Entre outros.
Cenários comuns de uso
Aberto para todos os tipos de dados, incluindo textuais, numéricos, estruturados e não estruturados – orientado a documentos;
O Apache Lucene é uma biblioteca de software de mecanismo de pesquisa gratuita e de código aberto – construído em Java;
Possui um suporte para entrada, processamento e saída de dados;
Elasticsearch é o componente central do Elastic Stack, um conjunto de ferramentas gratuitas e abertas para ingestão, enriquecimento, armazenamento, análise e visualização de dados;
Altamente escalável;
Armazenamento e busca/análise de dados com altíssimo desempenho – quase que em tempo real;
Documentação muito completa;
Comunidade grande e ativa.
Cisco, Adobe, Docker, iFood, Udemy, SoundCloud, etc.
Empresas destaques nos seus respectivos ramos e de áreas distintas utilizam a ferramenta, o que mostra sua flexibilidade e adaptabilidade ao negócio.
Shards é análogo a partição em SQL;
Conceitos semelhantes aos do MongoDB para quem está familiarizado.
Justamente, por conta dessa arquitetura, o Elasticsearch possui facilidade para escalar e crescer horizontalmente.
Para escalar, bastar adicionar mais um “Node” no seu cluster.
O Shard é uma instância de um índice de Lucene, basicamente um mecanismo de pesquisa que indexa e manipula consultas para um subconjunto dos dados no cluster do Elasticsearch.
À medida que os dados são gravados em um shard, eles são publicados em novos segmentos Lucene, e é nessa hora que ficam disponíveis para consultas.
O Elasticsearch possui flexibilidade no gerenciamento de IDs, caso não seja informado, ele gera automaticamente.
Quando um documento é armazenado, ele é indexado e totalmente pesquisável quase em tempo real - em 1 segundo.
O Elasticsearch usa uma estrutura de dados chamada índice invertido que oferece suporte a pesquisas de texto completo muito rápidas.
Um índice invertido lista cada palavra única que aparece em qualquer documento e identifica todos os documentos em que cada palavra ocorre.
Ao invés de armazenar apenas um id e colunas de valor, como um banco de dados relacional tradicional, o Elastic armazena “termos” (palavras), sua quantidade de repetições e documentos onde ocorrem;
Desta forma, em uma busca por texto específico, ao invés de realizar um fullscan em talvez milhões de registros, ele pode localizar diretamente apenas os registros onde as palavras filtradas de fato ocorrem;
Priorização por repetição de acordo com os termos pesquisados;
É possível indexar por região;
Normalização de termos repetitivos maiúsculo e minúsculo, singular e plural – tudo depende de como você configura e impacta na forma de como as suas queries irão obter o resultado.
O conjunto da obra – ELK, REST APIs e funcionalidades prontas como agregação de informações, vocês quis dizer, e etc;
O Elasticsearch possui flexibilidade no gerenciamento de IDs, caso não seja informado, ele gera automaticamente.
A consulta de “Match” é uma das consultas mais básicas e comumente usadas no Elasticsearch e funciona como uma consulta de texto completo. Podemos usar esta consulta para pesquisar texto, números ou valores booleanos;
Isso retorna o mesmo documento de antes porque, por padrão, o Elasticsearch trata cada palavra na consulta de pesquisa com um operador OR.
O conjunto da obra – ELK, REST APIs e funcionalidades prontas como agregação de informações, vocês quis dizer, e etc;