En af de unikke designfunktioner ved Elasticsearch er, at i modsætning til de fleste traditionelle systemer eller databaser, udføres alle opgaver som at oprette forbindelse til og manipulere Elasticsearch ved hjælp af en REST API
, hvilket betyder, at næsten hver forespørgsel eller kommando, der udføres på din Elasticsearch-node, er en simpel HTTP-anmodning til en bestemt URL.
Afhængigt af HTTP verb
sendt og den URL, det udsagnsord er sendt til, kan Elasticsearch udføre en lang række handlinger på noden eller endda klyngen.
Elasticsearch REST API URL-struktur
På det mest grundlæggende niveau, for at udføre en kommando i Elasticsearch, skal du sende et HTTP verbum til URL'en på din Elasticsearch-knude. Til udvikling er dette typisk localhost:9200
.
I de fleste tilfælde, er den enkleste metode til at sende en anmodning til REST API af Elasticsearch gennem det nyttige kommandolinjeværktøj, cURL
, som er et simpelt værktøj, der bruges til at overføre næsten enhver form for internetdata.
For eksempel for at liste alle indices
, kan du udføre følgende curl
kommando fra shell-prompten på din udviklingsserver (som angivet i den officielle dokumentation:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Her får vi adgang til cat API
(angivet med den førende _
understregning) og se indices
, som viser et tværsnit af hvert indeks i klyngen.
Indekser, typer, dokumenter og egenskaber
Med et eksempel på plads kan vi udforske mere detaljeret den specifikke struktur af Elasticsearch REST API'er, som oftest kommer til at bestå af tre strukturerede komponenter, index
, type
, og document
:
localhost:9200/index/type/document
index
er den overordnede struktur og er enklest tænkt som en database
der huser mange types
. Og index
kan repræsentere ethvert koncept, men vil ofte repræsentere et helt system af komponenter såsom en shop
eller en bookstore
.
Types
er indeholdt i et index
og ligner database tables
, med hver type
repræsenterer en samling af lignende objekter (såsom shirt
eller book
).
Til sidst, document
er en enkelt forekomst eller repræsentation af et objekt af den overordnede type
. Således kan bogen "Hobbitten" eksistere som en bog type
i index
navngivet boghandel .
Sletning af data fra Elasticsearch
Med den grundlæggende REST API-syntaks ude af vejen, kan vi undersøge, hvordan man udfører specifikke handlinger som at slette data.
Slet et enkelt dokument
Med vores grundlæggende syntaks som set ovenfor, skal vi bruge curl
og send DELETE
HTTP verbum ved hjælp af -XDELETE
mulighed:
$ curl -XDELETE 'localhost:9200/index/type/document'
For eksempel for at slette vores førnævnte bog document
, kan vi bruge følgende kommando:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Dette vil slette document
med et ID
af 1
fra book
type
der er i bookstore
index
.
Slet en type
Som du måske gætter, med syntaksen kun udvidet en smule, er vi i stand til at fjerne en hel type
. Her sletter vi book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Slet et indeks
Til sidst, hvis vi ønsker at slette et helt index
, dette kan gøres ved at bruge samme syntaks som før:
$ curl -XDELETE 'localhost:9200/bookstore'