Elasticsearch Tutorial para iniciantes

Elasticsearch Tutorial para iniciantes
Nesta lição, veremos como podemos usar o Elasticsearch e qual é o seu uso. Vamos olhar completamente para várias terminologias envolvidas e começar a trabalhar com ele também.

Elasticsearch Database

Elasticsearch é um dos bancos de dados NOSQL mais populares que são usados ​​para armazenar e pesquisar dados baseados em texto. É baseado na tecnologia de indexação Lucene e permite a recuperação de pesquisa em milissegundos com base em dados indexados.

Com base no site Elasticsearch, aqui está a definição:

Elasticsearch é um mecanismo de pesquisa e análise de código aberto distribuído, capaz de resolver um número crescente de casos de uso.

Essas eram algumas palavras de alto nível sobre elasticsearch. Vamos entender os conceitos em detalhes aqui.

  • Distribuído: Elasticsearch divide os dados que ele contém em vários nós e usa senhor de escravos algoritmo internamente
  • Repousante: Elasticsearch suporta consultas de banco de dados por meio de APIs REST. Isso significa que podemos usar chamadas HTTP simples e métodos HTTP como get, postar, colocar, excluir etc. para acessar dados.
  • Mecanismo de pesquisa e análise: O ES suporta consultas altamente analíticas para executar no sistema, que podem consistir em consultas agregadas e vários tipos, como consultas estruturadas, não estruturadas e geográficas.
  • Scalável horizontalmente: Esse tipo de conflito refere -se a adicionar mais máquinas a um cluster existente. Isso significa que o ES é capaz de aceitar mais nós em seu cluster e não fornecer tempo de inatividade para as atualizações necessárias para o sistema. Veja a imagem abaixo para entender os conceitos de escala:
  • Esparaduras verticais e horizontais

Introdução ao banco de dados Elasticsearch

Para começar a usar o Elasticsearch, ele deve ser instalado na máquina. Para fazer isso, leia Instale o Elasticsearch no Ubuntu.

Certifique -se de ter uma instalação ativa do Elasticsearch se quiser experimentar exemplos que apresentamos mais tarde na lição.

Elasticsearch: conceitos e componentes

Nesta seção, veremos quais componentes e conceitos estão no coração do Elasticsearch. É importante entender o entendimento sobre esses conceitos para entender como o ES funciona:

  • Conjunto: Um cluster é uma coleção de máquinas de servidor (nós) que contém os dados. Os dados são divididos entre vários nós para que possam ser replicados e o ponto único de falha (SPOF) não acontece com o servidor ES. O nome padrão do cluster é Elasticsearch. Cada nó em um cluster se conecta ao cluster com um URL e o nome do cluster, por isso é importante manter esse nome distinto e claro.
  • : Uma máquina de nós faz parte de um servidor e é denominada uma única máquina. Ele armazena os dados e fornece recursos de indexação e pesquisa, juntamente com outros nós para o cluster.

    Devido ao conceito de escala horizontal, podemos praticamente adicionar um número infinito de nós em um cluster ES para fornecer muito mais recursos de força e indexação.

  • Índice: Um índice é uma coleção de documentos com características um tanto semelhantes. Um índice é praticamente semelhante a um banco de dados em um ambiente baseado em SQL.
  • Tipo: Um tipo é usado para separar dados entre o mesmo índice. Por exemplo, o banco de dados/índice do cliente pode ter vários tipos, como usuário, pagamento_type etc.

    Observe que os tipos são preteridos de ES V6.0.0 em diante. Leia aqui por que isso foi feito.

  • Documento: Um documento é o nível mais baixo da unidade que representa dados. Imagine como um objeto JSON que contém seus dados. É possível indexar quantos documentos dentro de um índice.

Tipos de pesquisa no Elasticsearch

Elasticsearch é conhecido por seus recursos de pesquisa quase em tempo real e as flexibilidades que ele fornece com o tipo de dados sendo indexados e pesquisados. Vamos começar a estudar como usar a pesquisa com vários tipos de dados.

  • Pesquisa estruturada: esse tipo de pesquisa é executado em dados que possuem um formato predefinido, como datas, horários e números. Com o formato predefinido vem a flexibilidade de executar operações comuns, como comparar valores em uma variedade de datas. Interessantemente, Dados textuais também podem ser estruturados. Isso pode acontecer quando um campo tem um número fixo de valores. Por exemplo, o nome dos bancos de dados pode ser, MySQL, MongoDB, Elasticsearch, Neo4J, etc. Com a pesquisa estruturada, a resposta para as consultas que executamos é um sim ou não.
  • Pesquisa de texto completo: Este tipo de pesquisa depende de dois fatores importantes, Relevância e Análise. Com relevância, determinamos como alguns dados correspondem à consulta, definindo uma pontuação para os documentos resultantes. Esta pontuação é fornecida pelo próprio ES. Análise refere -se a dividir o texto em tokens normalizados para criar um índice invertido.
  • Pesquisa multifield: com o número de consultas analíticas aumentando com os dados armazenados no ES, geralmente não enfrentamos consultas simples de correspondência. Os requisitos cresceram para executar consultas que abrangem vários campos e têm uma lista classificada de dados de retorno retornados pelo próprio banco de dados. Dessa forma, os dados podem estar presentes ao usuário final de uma maneira muito mais eficiente.
  • MACIMENTAÇÃO DE PROIMIDADE: As consultas hoje são muito mais do que apenas identificar se alguns dados textuais contêm outra string ou não. Trata -se de estabelecer a relação entre os dados para que possam ser pontuados e combinados com o contexto em que os dados estão sendo correspondidos. Por exemplo:
    • Ball atingiu John
    • John bateu na bola
    • John comprou uma nova bola que foi atingida Jaen Garden

    Uma consulta de partida encontrará os três documentos quando pesquisado Bola atingida. Uma pesquisa de proximidade pode nos dizer até que ponto essas duas palavras aparecem na mesma linha ou parágrafo devido ao qual eles correspondiam.

  • Combinação parcial: muitas vezes precisamos executar consultas parciais. A correspondência parcial nos permite executar consultas que correspondem parcialmente. Para visualizar isso, vejamos uma consulta semelhante à SQL semelhante:

    Consultas SQL: correspondência parcial

    Onde nome como "%John%"
    E nome como "%vermelho%"
    E nome como "%Garden%"

    Em algumas ocasiões, precisamos apenas executar consultas parciais de partida, mesmo quando elas podem ser consideradas como técnicas de força bruta.

Integração com Kibana

Quando se trata de um mecanismo de análise, geralmente precisamos executar consultas de análise em um domínio de inteligência de negócios (BI). Quando se trata de analistas de negócios ou analistas de dados, não seria justo supor que as pessoas conhecem uma linguagem de programação quando desejam visualizar dados presentes no cluster ES de ES. Este problema é resolvido por Kibana.
Kibana oferece tantos benefícios para o BI que as pessoas podem realmente visualizar dados com um painel excelente e personalizável e ver dados de forma inacradante. Vejamos alguns de seus benefícios aqui.

Gráficos interativos

No centro de Kibana estão gráficos interativos como estes:

Kibana vem apoiado com vários tipos de gráficos, como gráficos de pizza, explosões solares, histogramas e muito mais que usam os recursos completos de agregação de ES.

Suporte de mapeamento

Kibana também suporta geo-agregação completa, o que nos permite geo-map nossos dados. Isso não é legal?!

Agregações e filtros pré-criados

Com agregações e filtros pré-construídos, é possível fragmentar literalmente, soltar e executar consultas altamente otimizadas no painel Kibana. Com apenas alguns cliques, é possível executar consultas agregadas e apresentar resultados na forma de gráficos interativos.

Distribuição fácil de painéis

Com Kibana, também é muito fácil compartilhar painéis com um público muito mais amplo sem fazer mudanças no painel com a ajuda do modo apenas do painel. Podemos inserir facilmente painéis em nossos wiki internos ou páginas da web.

Imagens de recursos tomadas da página do produto Kibana.

Usando o Elasticsearch

Para ver os detalhes da instância e as informações do cluster, execute o seguinte comando:

Agora, podemos tentar inserir alguns dados em ES usando o seguinte comando:

Inserção de dados

ondulação \
-X Post 'http: // localhost: 9200/linuxhint/hello/1' \
-H 'Conteúdo-Tipo: Application /JSON' \
-d '"name": "linuxhint"' \

Aqui está o que recebemos com este comando:

Vamos tentar obter os dados agora:

Obtendo dados

Curl -x Obtenha 'http: // localhost: 9200/linuxhint/hello/1'

Quando executamos este comando, obtemos a seguinte saída:

Conclusão

Nesta lição, analisamos como podemos começar a usar o Elasticsearch, que é um excelente mecanismo de análise e oferece excelente suporte para pesquisa de texto livre quase em tempo real também.