O Elasticsearch é um motor de pesquisa open source de elevado desempenho utilizado para indexar e pesquisar grandes quantidades de dados. O Elasticsearch utiliza uma arquitetura distribuída que permite que os dados sejam armazenados e processados em vários nós de um cluster.
O Elasticsearch é pesquisado através de consultas que podem ser enviadas para o servidor Elasticsearch. As consultas podem ser executadas utilizando a API do Elasticsearch ou utilizando ferramentas como o Kibana ou o Logstash. Os principais tipos de consultas no Elasticsearch são:
- Query DSL é uma linguagem de consulta que permite especificar critérios para pesquisar e filtrar dados. A Query DSL suporta muitos operadores e funções para refinar a pesquisa de dados.
- Filtros - Um tipo especial de consulta que lhe permite direcionar as consultas para recuperar uma quantidade específica de dados. Os filtros são utilizados para estabelecer determinados limites às consultas, reduzindo assim a carga no sistema e acelerando a recuperação de dados.
- Agregações - consultas que permitem analisar dados e devolvê-los numa forma ordenada. As agregações são utilizadas para processar grandes quantidades de dados e permitem analisar e avaliar os dados com maior exatidão.
De um modo geral, o Elasticsearch é uma óptima solução para pesquisar e analisar grandes quantidades de dados e permite-lhe encontrar dados de forma rápida e precisa em clusters de dados de complexidade variável.
Pesquisa de texto completo: o Elasticsearch permite-lhe pesquisar por palavra e frase em grandes volumes de dados textuais, incluindo dados estruturados e não estruturados.
- Agregação de dados: permite-lhe criar tabelas de resumo, agrupar dados e calcular estatísticas para grandes quantidades de dados.
- Pesquisa distribuída: pode ser executada em vários nós para distribuir a carga e processar grandes quantidades de dados.
- Análise de dados: permite-lhe analisar dados, identificar tendências, avaliar o desempenho, melhorar a qualidade e muito mais.
- Monitorização: o Elasticsearch pode ser utilizado para monitorizar sistemas, aplicações e infra-estruturas para detetar e resolver problemas de forma rápida e eficiente.
De tudo isto resulta que o planeamento, a conceção e o desenvolvimento de aplicações baseadas no Elasticsearch exigem a conceção de uma arquitetura competente e a capacidade de utilizar toda a gama de ferramentas e funcionalidades do Elasticsearch.