Een van de unieke ontwerpkenmerken van Elasticsearch is dat, in tegenstelling tot de meeste traditionele systemen of databases, alle taken zoals verbinding maken met en manipuleren van Elasticsearch worden uitgevoerd met behulp van een REST API
, wat betekent dat bijna elke query of opdracht die op uw Elasticsearch-knooppunt wordt uitgevoerd, een eenvoudig HTTP-verzoek is naar een bepaalde URL.
Afhankelijk van het HTTP verb
verzonden en de URL waarnaar het werkwoord wordt verzonden, kan Elasticsearch een grote verscheidenheid aan acties uitvoeren op het knooppunt of zelfs op het cluster.
De Elasticsearch REST API URL-structuur
Op het meest basale niveau, om een opdracht in Elasticsearch uit te voeren, moet u een HTTP-werkwoord naar de URL van uw Elasticsearch-knooppunt sturen. Voor ontwikkeling is dit meestal localhost:9200
.
In de meeste gevallen is de eenvoudigste methode voor het verzenden van een verzoek naar de REST API van Elasticsearch via de handige opdrachtregeltool, cURL
, een eenvoudig hulpmiddel dat wordt gebruikt om bijna alle soorten internetgegevens over te dragen.
Om bijvoorbeeld alle indices
weer te geven , kunt u de volgende curl
uitvoeren commando vanaf de shell-prompt van uw ontwikkelserver (zoals aangegeven in de officiële documentatie:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Hier hebben we toegang tot de cat API
(aangegeven door de leidende _
underscore) en het bekijken van de indices
, die een doorsnede toont van elke index in het cluster.
Indices, typen, documenten en eigenschappen
Met een voorbeeld op zijn plaats kunnen we de specifieke structuur van Elasticsearch REST API's nader onderzoeken, die meestal uit drie gestructureerde componenten zullen bestaan, de index
, het type
, en het document
:
localhost:9200/index/type/document
De index
is de bovenliggende structuur en wordt het eenvoudigst gezien als een database
die veel types
herbergt . En index
kan elk concept vertegenwoordigen, maar zal vaak een heel systeem van componenten vertegenwoordigen, zoals een shop
of een bookstore
.
Types
zijn opgenomen in een index
en zijn vergelijkbaar met database tables
, met elk type
die een verzameling van vergelijkbare objecten vertegenwoordigen (zoals shirt
of book
).
Ten slotte, het document
is een enkele instantie of representatie van een object van het bovenliggende type
. Het boek "The Hobbit" kan dus bestaan als een boek type
in de index
genaamd boekhandel .
Gegevens verwijderen uit Elasticsearch
Nu de standaard REST API-syntaxis uit de weg is, kunnen we onderzoeken hoe we specifieke acties kunnen uitvoeren, zoals het verwijderen van gegevens.
Een enkel document verwijderen
Als we onze basissyntaxis nemen zoals hierboven te zien is, moeten we curl
. gebruiken en stuur de DELETE
HTTP-werkwoord, met behulp van de -XDELETE
optie:
$ curl -XDELETE 'localhost:9200/index/type/document'
Om bijvoorbeeld ons eerder genoemde boek document
. te verwijderen , kunnen we het volgende commando gebruiken:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Hiermee wordt het document
verwijderd met een ID
van 1
uit het book
type
dat is binnen de bookstore
index
.
Een type verwijderen
Zoals je misschien al vermoedt, kunnen we een volledig type
verwijderen, omdat de syntaxis slechts iets breder wordt. . Hier verwijderen we het book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Een index verwijderen
Ten slotte, als we een hele index
willen verwijderen , dit kan met dezelfde syntaxis als voorheen:
$ curl -XDELETE 'localhost:9200/bookstore'