Elasticsearch - APIs de índice

Essas APIs são responsáveis ​​por gerenciar todos os aspectos do índice, como configurações, aliases, mapeamentos, modelos de índice.

Criar Índice

Esta API ajuda você a criar um índice. Um índice pode ser criado automaticamente quando um usuário está passando objetos JSON para qualquer índice ou pode ser criado antes disso. Para criar um índice, basta enviar uma solicitação PUT com configurações, mapeamentos e aliases ou apenas uma solicitação simples sem corpo.

PUT colleges

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

{
   "acknowledged" : true,
   "shards_acknowledged" : true,
   "index" : "colleges"
}

Também podemos adicionar algumas configurações ao comando acima -

PUT colleges
{
  "settings" : {
      "index" : {
         "number_of_shards" : 3,
         "number_of_replicas" : 2
      }
   }
}

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

{
   "acknowledged" : true,
   "shards_acknowledged" : true,
   "index" : "colleges"
}

Apagar o Índice

Esta API ajuda você a excluir qualquer índice. Você só precisa passar uma solicitação de exclusão com o nome desse índice específico.

DELETE /colleges

Você pode excluir todos os índices usando apenas _all ou *.

Obter índice

Essa API pode ser chamada apenas enviando a solicitação get para um ou mais índices. Isso retorna as informações sobre o índice.

GET colleges

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

{
   "colleges" : {
      "aliases" : {
         "alias_1" : { },
         "alias_2" : {
            "filter" : {
               "term" : {
                  "user" : "pkay"
               }
            },
            "index_routing" : "pkay",
            "search_routing" : "pkay"
         }
      },
      "mappings" : { },
      "settings" : {
         "index" : {
            "creation_date" : "1556245406616",
            "number_of_shards" : "1",
            "number_of_replicas" : "1",
            "uuid" : "3ExJbdl2R1qDLssIkwDAug",
            "version" : {
               "created" : "7000099"
            },
            "provided_name" : "colleges"
         }
      }
   }
}

Você pode obter as informações de todos os índices usando _all ou *.

Índice existe

A existência de um índice pode ser determinada apenas enviando uma solicitação get para esse índice. Se a resposta HTTP for 200, ela existe; se for 404, não existe.

HEAD colleges

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

200-OK

Configurações de índice

Você pode obter as configurações de índice apenas anexando a palavra-chave _settings no final do URL.

GET /colleges/_settings

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

{
   "colleges" : {
      "settings" : {
         "index" : {
            "creation_date" : "1556245406616",
            "number_of_shards" : "1",
            "number_of_replicas" : "1",
            "uuid" : "3ExJbdl2R1qDLssIkwDAug",
            "version" : {
               "created" : "7000099"
            },
            "provided_name" : "colleges"
         }
      }
   }
}

Estatísticas de índice

Esta API ajuda você a extrair estatísticas sobre um índice específico. Você só precisa enviar uma solicitação get com a URL de índice e a palavra-chave _stats no final.

GET /_stats

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

………………………………………………
},
   "request_cache" : {
      "memory_size_in_bytes" : 849,
      "evictions" : 0,
      "hit_count" : 1171,
      "miss_count" : 4
   },
   "recovery" : {
      "current_as_source" : 0,
      "current_as_target" : 0,
      "throttle_time_in_millis" : 0
   }
} ………………………………………………

Rubor

O processo de limpeza de um índice garante que todos os dados que atualmente são persistidos apenas no log de transações também sejam permanentemente persistidos no Lucene. Isso reduz os tempos de recuperação, pois os dados não precisam ser reindexados dos logs de transações depois que o Lucene indexado é aberto.

POST colleges/_flush

Ao executar o código acima, obtemos a saída conforme mostrado abaixo -

{
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   } 
}