L'une des caractéristiques de conception uniques d'Elasticsearch est que, contrairement à la plupart des systèmes ou bases de données traditionnels, toutes les tâches telles que la connexion et la manipulation d'Elasticsearch sont effectuées à l'aide d'une REST API
, ce qui signifie que presque chaque requête ou commande exécutée sur votre nœud Elasticsearch est une simple requête HTTP vers une URL particulière.
En fonction du HTTP verb
envoyé et l'URL à laquelle le verbe est envoyé, Elasticsearch peut effectuer une grande variété d'actions sur le nœud ou même le cluster.
La structure d'URL de l'API REST Elasticsearch
Au niveau le plus basique, pour exécuter une commande dans Elasticsearch, vous devrez envoyer un verbe HTTP à l'URL de votre nœud Elasticsearch. Pour le développement, il s'agit généralement de localhost:9200
.
Dans la plupart cas, la méthode la plus simple pour envoyer une requête à l'API REST d'Elasticsearch consiste à utiliser l'outil de ligne de commande utile, cURL
, qui est un outil simple utilisé pour transférer presque tous les types de données Internet.
Par exemple, pour lister tous les indices
, vous pouvez exécuter le curl
suivant commande depuis l'invite du shell de votre serveur de développement (comme indiqué dans la documentation officielle :
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Ici, nous accédons à l'cat API
(indiqué par le premier _
trait de soulignement) et visualisation des indices
, qui montre une coupe transversale de chaque index dans le cluster.
Indices, types, documents et propriétés
Avec un exemple en place, nous pouvons explorer plus en détail la structure spécifique des API REST d'Elasticsearch, qui consisteront le plus souvent en trois composants structurés, l'index
, le type
, et le document
:
localhost:9200/index/type/document
L'index
est la structure parente et est plus simplement considérée comme une database
qui abrite de nombreux types
. Et index
peut représenter n'importe quel concept, mais représentera souvent tout un système de composants, comme une shop
ou une bookstore
.
Types
sont contenus dans un index
et sont similaires aux tables
de la base de données , avec chaque type
représentant une collection d'objets similaires (comme shirt
ou book
).
Enfin, le document
est une instance unique ou une représentation d'un objet du parent type
. Ainsi, le livre "Le Hobbit" peut exister en tant que livre type
dans l'index
nommée librairie .
Suppression de données d'Elasticsearch
Avec la syntaxe de base de l'API REST à l'écart, nous pouvons explorer comment effectuer des actions spécifiques comme la suppression de données.
Supprimer un seul document
En prenant notre syntaxe de base comme vu ci-dessus, nous devons utiliser curl
et envoyez le DELETE
Verbe HTTP, utilisant le -XDELETE
choix :
$ curl -XDELETE 'localhost:9200/index/type/document'
Par exemple, pour supprimer notre livre document
susmentionné , nous pourrions utiliser la commande suivante :
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Cela supprimera le document
avec un ID
de 1
du book
type
qui se trouve dans la bookstore
index
.
Supprimer un type
Comme vous pouvez le deviner, la syntaxe ne s'élargissant que légèrement, nous sommes en mesure de supprimer un type
entier . Ici, nous supprimons le book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Supprimer un index
Enfin, si nous souhaitons supprimer un index
entier , cela peut être fait en utilisant la même syntaxe qu'avant :
$ curl -XDELETE 'localhost:9200/bookstore'