Una de las características de diseño únicas de Elasticsearch es que, a diferencia de la mayoría de los sistemas o bases de datos tradicionales, todas las tareas, como conectarse y manipular Elasticsearch, se realizan mediante una REST API
. , lo que significa que casi todas las consultas o comandos ejecutados en su nodo de Elasticsearch son una simple solicitud HTTP a una URL en particular.
Dependiendo del HTTP verb
enviado y la URL a la que se envía el verbo, Elasticsearch puede realizar una gran variedad de acciones en el nodo o incluso en el clúster.
La estructura de URL de la API REST de Elasticsearch
En el nivel más básico, para ejecutar un comando en Elasticsearch, deberá enviar un verbo HTTP a la URL de su nodo de Elasticsearch. Para el desarrollo, normalmente es localhost:9200
.
En la mayoría casos, el método más simple para enviar una solicitud a la API REST de Elasticsearch es a través de la útil herramienta de línea de comandos, cURL
, que es una herramienta sencilla que se utiliza para transferir casi cualquier tipo de datos de Internet.
Por ejemplo, para listar todos los indices
, puede ejecutar el siguiente curl
comando desde el indicador de shell de su servidor de desarrollo (como se indica en la documentación oficial:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Aquí estamos accediendo a la cat API
(indicado por el _
inicial subrayado) y viendo los indices
, que muestra una sección transversal de cada índice en el grupo.
Índices, Tipos, Documentos y Propiedades
Con un ejemplo en su lugar, podemos explorar con más detalle la estructura específica de las API REST de Elasticsearch, que generalmente constan de tres componentes estructurados, el index
, el type
y el document
:
localhost:9200/index/type/document
El index
es la estructura principal y se considera más simplemente como una database
que alberga muchos types
. Y index
puede representar cualquier concepto, pero a menudo representará un sistema completo de componentes como una shop
o una bookstore
.
Types
están contenidos en un index
y son similares a las tables
de la base de datos , con cada type
representando una colección de objetos similares (como shirt
o book
).
Finalmente, el document
es una sola instancia o representación de un objeto del padre type
. Así, el libro “El Hobbit” puede existir como un libro type
en el index
llamada librería .
Eliminación de datos de Elasticsearch
Con la sintaxis básica de la API REST fuera del camino, podemos explorar cómo realizar acciones específicas como eliminar datos.
Eliminar un solo documento
Tomando nuestra sintaxis básica como se ve arriba, necesitamos usar curl
y envía el DELETE
Verbo HTTP, usando -XDELETE
opción:
$ curl -XDELETE 'localhost:9200/index/type/document'
Por ejemplo, para eliminar nuestro libro antes mencionado document
, podríamos usar el siguiente comando:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Esto eliminará el document
con un ID
de 1
del book
type
que está dentro de la bookstore
index
.
Eliminar un tipo
Como puede suponer, con la sintaxis solo ampliándose ligeramente, podemos eliminar un type
completo . Aquí estamos eliminando el book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Eliminar un índice
Por último, si deseamos eliminar un index
completo , esto se puede hacer usando la misma sintaxis que antes:
$ curl -XDELETE 'localhost:9200/bookstore'