Como configurar um Elasticsearch Index Models

Como configurar um Elasticsearch Index Models
Os índices são um recurso de pesquisa de elasticidade essencial sem o qual provavelmente não funcionaria como faz. Embora os índices de pesquisa elástica possam variar dependendo do uso pretendido, eles tendem a compartilhar propriedades comuns. Diante disso, pode ser cansativo criar propriedades semelhantes para todos os índices. Em vez disso, é muito mais eficiente criar um modelo ao qual podemos nos referir ao criar um índice.

Este tutorial irá guiar os modelos de Índice de Pesquisa de Elasticsearch que permitem definir modelos ou plantas para índices comuns. Por exemplo, se você estiver constantemente registrando dados de fontes externas, poderá definir um plano para todos os índices de registro.

OBSERVAÇÃO: Antes de começarmos, é bom observar que o tutorial se concentra na versão mais recente do Elasticsearch-7.8 no momento da escrita e pode variar de outras versões. Também assumimos que você tem o Elasticsearch em um sistema em algum lugar.

Vamos começar a trabalhar com modelos de índice Elasticsearch.

O que é um modelo de índice de pesquisa de elasticse?

Um modelo de índice de pesquisa de elasticação é um método usado para instruir o Elasticsearch para configurar índices após a criação. Por exemplo, um modelo de índice usado em um fluxo de dados configura os índices de apoio do fluxo na criação. Um modelo de índice é criado manualmente antes da criação do índice. Ao criar um índice, o modelo aplica as definições de configuração para o índice.

A versão mais recente do Elasticsearch tem dois tipos de modelos utilizáveis. Um é o modelo de índice, E o outro é modelos de componentes. Como já estabelecemos, os modelos de índice ajudam a criar índices de pesquisa de elasticação.

Os modelos de componentes são módulos ou blocos reutilizáveis ​​usados ​​para definir configurações, mapeamento e aliases. Os modelos de componentes não são aplicados diretamente aos índices criados, mas podem ajudar a criar modelos de índice.

Alguns modelos de índice padrão usados ​​pelo Elasticsearch incluem: métricas-*-*, logs-*-* .

Como criar um modelo de índice

Para criar novos modelos de índice ou atualizar os existentes, usamos a API de modelo de put. Usando o endpoint _index_template, podemos enviar uma solicitação HTTP para adicionar um modelo.

A sintaxe geral para criar um modelo é:

Put _index_template/template_name

É bom observar que o nome do modelo é um parâmetro necessário. Considere a solicitação abaixo que cria um modelo de índice como template_1

Coloque _index_template/template_1

/ * Defina o padrão de índice */
"index_patterns": ["te*"],
"Prioridade": 1,
/* Defina configurações para os índices*/
"modelo":
"configurações" :
"number_of_shards": 2


Para usuários de curl, o comando é:

Curl -xput "http: // localhost: 9200/_index_template/template_1" -h 'content -type: Application/json' -d '/*Defina o padrão de índice*/"index_patterns": ["te*"], "Prioridade": 1, /* Defina configurações para os índices* / "modelo": "Configurações": "number_of_shards": 2 '

Elasticsearch usa um padrão curinga para corresponder aos nomes de índices onde os modelos são aplicados. Alterar ou atualizar um modelo de índice não afeta os índices já criados apenas os que serão criados após o uso desse modelo.

De cima, você pode comentar seus modelos usando o método de comentários da linguagem C. Você pode adicionar quantos comentários quiser, em qualquer lugar do corpo, exceto a abertura dos aparelhos encaracolados.

No corpo de um modelo de índice, você pode incluir várias definições, como:

  • Modelo: A propriedade de modelo (objeto) define qual modelo a ser aplicado; Pode incluir aliases, mapeamentos e configurações-esse parâmetro opcional.
  • Composto de: Esta propriedade define uma lista de nomes para modelos de componentes. Uma vez definido, os modelos de componentes são compostos em sua ordem de especificação. Isso significa que o último modelo de componente definido tem a maior precedência.
  • Prioridade: A propriedade prioritária define a precedência do modelo de índice ao criar um índice. Se alguma precedência tiver o valor mais alto, ele terá maior precedência em comparação com valores mais baixos. O valor da prioridade não é necessário e é do tipo inteiro. 0 é o valor padrão para modelos não especificados.
  • Versão: O parâmetro da versão especifica a versão do modelo de índice, que ajuda a gerenciar os modelos.

Existem outras propriedades que você pode incluir no corpo do modelo de índice. Considere a documentação para saber mais.

https: // www.elástico.CO/guia/pt/elasticsearch/reference/7.10/índice-templates.html

Abaixo está uma solicitação de exemplo para criar um novo modelo com a versão 1.0

Put /_index_template /template_2

"Index_patterns": ["Remp*", "re*"],
"Prioridade": 1,
"modelo":
"configurações" :
"number_of_shards": 2,
"number_of_replicas": 0

,
"versão 1.0

Você não pode ter mais de um modelo de índice com um padrão correspondente e a mesma prioridade. Portanto, certifique -se de atribuir prioridades diferentes para corresponder aos modelos de padrões.

Como obter o modelo de índice

Para visualizar as informações sobre um modelo de índice, envie uma solicitação GET para a API _index_template. Por exemplo, para visualizar informações sobre o modelo_2, use a solicitação:

Get _index_template/template_2

O comando Curl é:

Curl -xget "http: // localhost: 9200/_index_template/template_2"

Este comando deve exibir informações sobre o modelo_2


"index_templates": [

"Nome": "template_2",
"index_template":
"Index_patterns": [
"Remp*",
"ré*"
],
"modelo" :
"configurações" :
"Índice":
"number_of_shards": "2",
"number_of_replicas": "0"


,
"composto de" : [ ],
"Prioridade": 1,
"versão 1


]

Você também pode usar curingas para obter modelos de correspondência. Por exemplo, considere a solicitação abaixo para visualizar todos os modelos no Elasticsearch.

Get _index_template/*

O comando Curl é.

Curl -xget http: // localhost: 9200/_index_template/*

Este comando deve fornecer informações sobre todos os modelos no Elasticsearch


"index_templates": [

"Nome": "Ilm-History",
"index_template":
"Index_patterns": [
"Ilm-history-3*"
],
"modelo" :
"configurações" :
"Índice":
"formato": "1",
"vida útil" :
"Nome": "Ilm-history-ilm-policy",
"Rollover_alias": "Ilm-History-3"
,
"Hidden": "True",
"number_of_shards": "1",
"Auto_expand_replicas": "0-1",
"number_of_replicas": "0"

,
"Mapeamentos":
"Dynamic": falso,
"Propriedades":
"index_age":
"Tipo": "Long"
,
"@timestamp":
"formato": "epoch_millis",
"Tipo": "data"
,
"detalhes do erro" :
"Tipo": "texto"
,
"Sucesso":
"Tipo": "booleano"
,
"Índice":
"Tipo": "palavra -chave"
,
"estado" :
"Dynamic": verdadeiro,
"Tipo": "objeto",
--------------------------Saída truncada-----------------------------------

Como excluir modelos

A exclusão de um modelo é tão simples quanto o modelo Get, mas usando a solicitação de exclusão como:

Delete _index_template/template_2

Você pode usar o comando curl:

Curl -xdelete "http: // localhost: 9200/_index_template/template_2"

Este comando exclui automaticamente o modelo especificado.

Conclusão

Este tutorial abordou o que são os modelos de índice de pesquisa de elasticse, como eles funcionam e como criar, visualizar e excluir modelos de índice. Esta informação básica deve ajudá -lo a começar a usar modelos de índice de pesquisa de elasticse.