quinta-feira, 21 de julho de 2016

ElasticSearch, algumas coisas que você precisa saber.




Voltando a escrever após 4 anos, e o que me fez voltar a escrever? ElasticSearch, esse fantástico motor de busca distribuído, feito pela Apache. Sua busca funciona no modelo full-text, onde você tem a mágica busca no estilo Google, que você digita um texto que no ElasticSearch é tratado como Termo e ele faz todo o trabalho de busca para você.


Algumas das vantagens do ES é que ele possui uma api  RESTfull, trabalha com Documentos tal qual um banco NoSql, seus dados são disponibilizados em tempo real e pode ser distribuído e configurado para apresentar alta confiabilidade.


Como falei ele armazena dados em  Documents no formato Json, formato universal suportado por quase todas as linguagens de programação hoje em dia.


O ES trabalha com alguns termos para simbolizar seu banco de dados, são eles:
Index, Type, Document, Field, onde:


Index ou índice representa um banco de dados.
Type ou tipo representa uma tabela do seu banco de dados.
Document ou documento simboliza uma linha de dados da tabela.
Field ou campo é uma coluna de uma tabela.


Fazendo uma analogia com um banco de dados relacional onde teríamos o banco MeuBancoTeste com a tabela usuário, com o as seguintes colunas id, login e senha e dados:


No ES teríamos a seguinte representação para esses dados.

O documento corresponde ao json dentro do _source, esse documento possui 3 campos: id, login e senha. O campo _id no json principal corresponde ao id que o elastic usa pra indexar aquele documento.
Simples não é?

Outra simplicidade é o uso de Rest para manipulação, com as operações já conhecidas. POST, PUT, DELETE e GET.

Criar um indice é muito simples, basta usar um metodo post informando o nome do indice que gostaria de criar. Usando nosso exemplo ficaria assim:
<pre name="code" class="delphi">
curl -XPUT 'localhost:9200/MeuBancoteste?pretty'
</pre>
O retorno dessa chamada seria algo como:
<pre name="code" class="delphi">
{
           "acknowledged": true
}
</pre>

Criando nossa tabela usuário e já populando no Es.
<pre name="code" class="delphi">
curl -XPUT 'localhost:9200/MeuBancoteste/usuario/0?pretty' -d '
{
  "login": "aluno",
  "senha" : "1"
}'
</pre>
Como podem perceber é muito simples de se trabalhar.
Mas o mais fantástico do ES na minha opinião é a busca por algo nele, ele tem um sistema de busca
por relevância, onde ele vai pontuando internamente cada vez que aquele termo é procurado, e assim ele
irá aparecer na frente quando você fizer um busca.

Bem esse foi um post simples mais para apresentar o ElasticSearch, essa poderosa ferramenta para indexação de documentos. Postarei mais sobre o seu uso, mais a frente.







Nenhum comentário:

Postar um comentário