(16) 981791110 contato@policast.studio

O que é o Elasticsearch?

O Elasticsearch é um mecanismo de busca e análise de dados distribuído e escalável. Ele utiliza a linguagem de consultas Lucene para fornecer pesquisa em tempo real, indexação de dados e análise avançada de texto.

O Elasticsearch é amplamente utilizado em várias aplicações, incluindo busca em log, análise de dados, monitoramento de infraestrutura, pesquisa de e-commerce e muito mais.

O Elasticsearch é uma solução de código aberto e pode ser facilmente integrado com outras ferramentas como, por exemplo, o Symfony.

Por que usar o Elasticsearch?

O Elasticsearch é uma excelente escolha em situações em que é necessária uma pesquisa em tempo real com indexação e consulta de dados em larga escala. Ele permite obter resultados de pesquisa rápidos e precisos em grandes volumes de dados, além de fornecer recursos de análise de texto avançados.

Outro grande benefício do Elasticsearch é sua escalabilidade, que permite dimensionar facilmente a infraestrutura de pesquisa a medida que o volume de dados aumenta, garantindo que a performance seja mantida.

Por fim, o Elasticsearch é uma solução de código aberto, o que significa que ele pode ser utilizado sem nenhum custo licenciamento. Além disso, há uma grande comunidade de desenvolvedores contribuindo continuamente para aprimorar a solução.

Como instalar o Elasticsearch?

Para utilizar o Elasticsearch, é preciso primeiro instalar o software em sua máquina. Existem diversas maneiras de instalar o Elasticsearch, mas as principais são:

  1. Download do Elasticsearch https://www.elastic.co/downloads/elasticsearch.
  2. Instalar via gerenciador de pacotes do sistema operacional como por exemplo um pacote RPM ou um pacote DEB.

Após a instalação, você pode interagir com o Elasticsearch por meio de uma API RESTful padrão ou usando um client específico para o Symfony.

Como criar um índice em Elasticsearch?

Antes de experimentar pesquisas em um Elasticsearch, você precisa criar um índice para armazenar seus dados. Um índice no Elasticsearch é como uma base de dados em um banco de dados relacional.

Para criar um índice, basta enviar uma solicitação HTTP PUT para a URL base do Elasticseach seguida pelo nome do índice que você deseja criar. Por exemplo, para criar um índice chamado “meu-indice”, execute a seguinte solicitação:

PUT /meu-indice

O Elasticsearch, por padrão, criará um único shard e uma réplica para o índice.

Como adicionar documentos ao Elasticsearch?

Para adicionar um documento ao Elasticsearch, você precisa enviar uma solicitação HTTP PUT ou POST para a URL da API RESTful do Elasticsearch que representa o índice e o tipo de documento no formato JSON.

Aqui está um exemplo de como criar um documento em um índice:

POST meu-indice/_doc

Em seguida, você precisa fornecer o conteúdo JSON do documento para adicionar na solicitação. Por exemplo, para adicionar um documento que contenha um campo chamado “meu-campo” com a string “meu-valor”, você poderia usar o seguinte corpo da solicitação JSON:

{"meu-campo": "meu-valor"}

Como pesquisar texto com o Elasticsearch?

O Elasticsearch torna fácil a pesquisa em texto completo, mesmo em grandes volumes de dados. Ele fornece uma linguagem de consulta textual simples, que permite pesquisar e filtrar resultados de pesquisa com precisão.

Para pesquisar texto com o Elasticsearch, você precisa enviar uma solicitação HTTP GET para a URL da API RESTful do Elasticsearch que representa o índice. Em seguida, você passa uma solicitação de pesquisa no formato JSON na URL como um parâmetro de consulta.

Aqui está um exemplo de como realizar uma pesquisa em um índice:

GET meu-indice/_search?q=meu-campo:meu-valor

Neste exemplo, o valor da pesquisa é “meu-valor” e o campo de pesquisa é “meu-campo”.

Como realizar uma pesquisa baseada em filtro no Elasticsearch?

O Elasticsearch permite filtragem baseada em tags, valores de intervalo (como datas), lista de termos e comparação de valores numéricos ou de string. Essas diversas opções permitem muitas possibilidades de filtragem de resultados.

Para realizar uma pesquisa com filtro no Elasticsearch, você precisa adicionar um objeto de filtro ao seu corpo de pesquisa JSON. O objeto deve especificar o tipo de filtro que você deseja usar (por exemplo, termo, intervalo etc.), o campo a ser filtrado e o valor que você deseja comparar.

Aqui está um exemplo de como realizar uma pesquisa com filtro no Elasticsearch:


{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"meu-campo-numerico": {
"gte": 0,
"lte": 10
}
}
}
}
}
}

Neste exemplo, a pesquisa é filtrada pelo campo numeral “meu-campo-numerico”, pelo intervalo de 0 a 10.

Como ordenar os resultados de pesquisa do Elasticsearch?

O Elasticsearch fornece várias opções para ordenar resultados de pesquisa, incluindo ordem crescente e decrescente em um ou vários campos.

Para classificar os resultados da pesquisa pelo Elasticsearch, adicione uma cláusula de classificação ao corpo da solicitação JSON.

Aqui está um exemplo de como ordenar o resultado da pesquisa do Elasticsearch:


{
"query": {
"match_all": {}
},
"sort": [
{
"meu-campo-1": {"order": "asc"}
},
{
"meu-campo-2": {"order": "desc"}
}
]
}

Neste exemplo, o resultado da pesquisa é classificado primeiro pelo campo “meu-campo-1” em ordem crescente, e em seguida pelo campo “meu-campo-2” em ordem decrescente.

Como remover um documento do Elasticsearch?

Para remover um documento do Elasticsearch, você precisa enviar uma solicitação HTTP DELETE para a URL da API RESTful do Elasticsearch que representa o índice e o tipo de documento.

Aqui está um exemplo de como remover um documento que possui o ID “meu-id” em um índice:

DELETE meu-indice/_doc/meu-id

Como atualizar um documento registrado no Elasticsearch?

Para atualizar um documento no Elasticsearch, você precisa enviar uma solicitação HTTP POST ou PUT para a URL da API RESTful do Elasticsearch que representa o índice e o tipo de documento.

Aqui está um exemplo de como atualizar um documento registrado no índice:

POST meu-indice/_update/meu-id

Em seguida, você precisa fornecer o conteúdo JSON do documento para atualizar na solicitação. Por exemplo, para atualizar um documento adicionando um campo chamado “meu-novo-campo” com a string “meu-novo-valor”, você poderia usar o seguinte corpo da solicitação JSON:

{"doc": {"meu-novo-campo": "meu-novo-valor"}}

Como recriar um índice no Elasticsearch?

As vezes é necessário recriar um índice do Elasticsearch completamente. Isto pode ser necessário quando houver necessidade de alteração na estrutura, adição ou remoção de campos e outros motivos.

O processo para recriação de um índice no Elasticsearch, é primeiramente excluir o índice atualmente existente, e depois criar um novo índice com a estrutura atualizada.

Para remover um índice com nome “meu-indice”, basta executar a seguinte solicitação:

DELETE meu-indice

Para criar um índice, siga o exemplo previamente citado na questão “Como criar um índice no Elasticsearch?”.