Um dos recursos exclusivos de design do Elasticsearch é que, diferentemente da maioria dos sistemas ou bancos de dados tradicionais, todas as tarefas, como conectar e manipular o Elasticsearch, são executadas usando uma
REST API
, o que significa que quase todas as consultas ou comandos executados no nó do Elasticsearch são uma solicitação HTTP simples para um URL específico. Dependendo do
HTTP verb
enviado e a URL para o qual o verbo é enviado, o Elasticsearch pode realizar uma enorme variedade de ações no nó ou mesmo no cluster. A estrutura de URL da API REST do Elasticsearch
No nível mais básico, para executar um comando no Elasticsearch, você precisará enviar um verbo HTTP para a URL do nó do Elasticsearch. Para desenvolvimento, normalmente é
localhost:9200
. Na maioria Em alguns casos, o método mais simples para enviar uma solicitação à API REST do Elasticsearch é por meio da útil ferramenta de linha de comando,
cURL
, que é uma ferramenta simples usada para transferir praticamente qualquer tipo de dados da Internet. Por exemplo, para listar todos os
indices
, você pode executar o seguinte curl
comando no prompt do shell do seu servidor de desenvolvimento (conforme indicado na documentação oficial:$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Aqui estamos acessando a
cat API
(indicado pelo _
inicial sublinhado) e visualizando os indices
, que mostra uma seção transversal de cada índice no cluster. Índices, tipos, documentos e propriedades
Com um exemplo em vigor, podemos explorar com mais detalhes a estrutura específica das APIs REST do Elasticsearch, que geralmente consistem em três componentes estruturados, o
index
, o type
, e o document
:localhost:9200/index/type/document
O
index
é a estrutura pai e é mais simplesmente considerada como um database
que abriga muitos types
. E index
pode representar qualquer conceito, mas muitas vezes representará todo um sistema de componentes como uma shop
ou uma bookstore
. Types
estão contidos em um index
e são semelhantes ao banco de dados tables
, com cada type
representando uma coleção de objetos semelhantes (como shirt
ou book
). Finalmente, o
document
é uma única instância ou representação de um objeto do pai type
. Assim, o livro “O Hobbit” pode existir como um livro type
no index
chamada livraria . Excluindo dados do Elasticsearch
Com a sintaxe básica da API REST fora do caminho, podemos explorar como realizar ações específicas, como excluir dados.
Excluir um único documento
Tomando nossa sintaxe básica como visto acima, precisamos usar
curl
e envie o DELETE
Verbo HTTP, usando o -XDELETE
opção:$ curl -XDELETE 'localhost:9200/index/type/document'
Por exemplo, para excluir nosso livro mencionado
document
, podemos usar o seguinte comando:$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Isso excluirá o
document
com um ID
de 1
do book
type
que está dentro da bookstore
index
. Excluir um tipo
Como você pode imaginar, com a sintaxe ampliando um pouco, podemos remover um
type
inteiro . Aqui estamos excluindo o book
type
:$ curl -XDELETE 'localhost:9200/bookstore/book'
Excluir um índice
Por fim, se desejarmos excluir um
index
inteiro , isso pode ser feito usando a mesma sintaxe de antes:$ curl -XDELETE 'localhost:9200/bookstore'