MongoDB

22 mai, 2020

ElasticSearch… Duas coisas que você precisa saber!

Publicidade

Minha relação com o ElasticSearch é de puro amor! Descobri esse lindinho porque eu precisava de uma ferramenta gratuita para monitoração do MongoDB Community… Acho que a versão era 3.4 e eu não tinha nada visual ou proativo…

Nesse caos experimentei usar alguns produtos mágicos do Elastic e fui salva da caça aos problemas.

Como eu adoro compartilhar soluções quase mágicas, resolvi criar alguns posts, onde veremos como a Elastic Stack pode ajudar muito na criação de produtos “a ponto de produção”.

1- O que é o ElasticSearch?

Vamos usar a definição da própria Elastic, que é a mãe da criança:

“O Elasticsearch é um mecanismo de busca e análise RESTful distribuída capaz de atender a um número crescente de casos de uso. Sendo o coração do Elastic Stack, ele armazena de maneira centralizada os dados para você poder descobrir o esperado e desvendar o inesperado.”

Veja que ele não foi definido como um banco de dados NoSQL…

O Elasticsearch até tem características compatíveis com um banco de dados NoSQL, por exemplo, ele é sem schema, recebe dados no formato JSON… Posso até classificá-lo com um banco de dados NoSQL orientado a documentos, mas não acho que este rolê seja o mais adequado!

Li um post no blog da Elasticsearch, e não achei nada mais didático que esse exemplo:

“Suponha você possua um banco de dados contendo clientes, pedidos e produtos e deseja pesquisar pedidos com o nome de um produto e usuário. Isso pode ser resolvido através da indexação de pedidos com todas as informações necessárias sobre o usuário e os produtos. A pesquisa é fácil, mas o que acontece quando você deseja alterar o nome do produto? Em um design relacional com normalização adequada, basta atualizar o produto e pronto. É nisso que eles são realmente bons. Com um banco de dados de documentos desnormalizados, todos os pedidos do produto precisariam ser atualizados.

Em outras palavras, com bancos de dados orientados a documentos como o Elasticsearch, projetamos nossos mapeamentos e armazenamos nossos documentos para que sejam otimizados para pesquisa e recuperação.”

2- Quando usar o ElasticSearch?

Vamos então resumir a história toda…

Nada te impede de usar o ElasticSeach como um banco de dados NoSQL, mas você pode precisar de características de um banco de dados que ele não tem!

Usamos o ElasticSearch quando precisamos fazer consultas em um grande volume de dados (normalmente em formato JSON ou textos). Simples assim!

Sabe qual é a magia desta história? Combinar o poder do ElasticSearch com um banco de dados relacional ou NoSQL, e as outras ferramentas da Elastic Stack. Aí amigos é correr para o abraço!

Por enquanto é isso!