En av de unika designegenskaperna hos Elasticsearch är att, till skillnad från de flesta traditionella system eller databaser, utförs alla uppgifter som att ansluta till och manipulera Elasticsearch med ett REST API
, vilket betyder att nästan varje fråga eller kommando som körs på din Elasticsearch-nod är en enkel HTTP-förfrågan till en viss URL.
Beroende på HTTP verb
skickas och webbadressen som verbet det skickas till, kan Elasticsearch utföra en mängd olika åtgärder på noden eller till och med klustret.
Elasticsearch REST API URL-struktur
På den mest grundläggande nivån, för att utföra ett kommando i Elasticsearch, måste du skicka ett HTTP-verb till URL:en för din Elasticsearch-nod. För utveckling är detta vanligtvis localhost:9200
.
I de flesta fall är den enklaste metoden för att skicka en begäran till Elasticsearchs REST API genom det användbara kommandoradsverktyget, cURL
, som är ett enkelt verktyg som används för att överföra nästan alla typer av internetdata.
Till exempel för att lista alla indices
, kan du utföra följande curl
kommandot från skalprompten på din utvecklingsserver (som anges i den officiella dokumentationen:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Här kommer vi åt cat API
(anges av den inledande _
understreck) och visa indices
, som visar ett tvärsnitt av varje index i klustret.
Indeks, typer, dokument och egenskaper
Med ett exempel på plats kan vi utforska den specifika strukturen hos Elasticsearch REST API:er, som oftast kommer att bestå av tre strukturerade komponenter, indices
, type
och document
:
localhost:9200/index/type/document
indices
är den överordnade strukturen och är enklast tänkt som en database
som innehåller många types
. Och indices
kan representera vilket koncept som helst, men kommer ofta att representera ett helt system av komponenter som en shop
eller en bookstore
.
Types
finns i ett indices
och liknar databasens tables
, med varje type
representerar en samling liknande föremål (som shirt
eller book
).
Slutligen, document
är en enskild instans eller representation av ett objekt av den överordnade type
. Således kan boken "Hobbiten" existera som en bok type
i indices
heter bokhandel .
Ta bort data från Elasticsearch
Med den grundläggande REST API-syntaxen ur vägen kan vi utforska hur man utför specifika åtgärder som att radera data.
Ta bort ett enda dokument
Med vår grundläggande syntax enligt ovan måste vi använda curl
och skicka DELETE
HTTP-verb med -XDELETE
alternativ:
$ curl -XDELETE 'localhost:9200/index/type/document'
Till exempel för att radera vår tidigare nämnda bok document
, kan vi använda följande kommando:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Detta kommer att radera document
med ett ID
av 1
från book
type
som finns i bookstore
indices
.
Ta bort en typ
Som du kanske gissar kan vi ta bort en hel type
, eftersom syntaxen bara breddas något. . Här tar vi bort book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Ta bort ett index
Slutligen, om vi vill ta bort ett helt indices
, detta kan göras med samma syntax som tidigare:
$ curl -XDELETE 'localhost:9200/bookstore'