Jedną z unikalnych cech Elasticsearch jest to, że w przeciwieństwie do większości tradycyjnych systemów lub baz danych, wszystkie zadania, takie jak łączenie i manipulowanie Elasticsearch, są wykonywane przy użyciu REST API
, co oznacza, że prawie każde zapytanie lub polecenie wykonane w węźle Elasticsearch jest prostym żądaniem HTTP do określonego adresu URL.
W zależności od HTTP verb
wysłane i adres URL, do którego jest wysłany czasownik, Elasticsearch może wykonywać ogromną różnorodność działań na węźle, a nawet w klastrze.
Struktura URL Elasticsearch REST API
Na najbardziej podstawowym poziomie, aby wykonać polecenie w Elasticsearch, musisz wysłać zlecenie HTTP do adresu URL węzła Elasticsearch. W przypadku programowania zazwyczaj jest to localhost:9200
.
W większości przypadkach najprostszą metodą wysłania żądania do REST API Elasticsearch jest użycie użytecznego narzędzia wiersza poleceń, cURL
, który jest prostym narzędziem używanym do przesyłania prawie każdego rodzaju danych internetowych.
Na przykład, aby wyświetlić wszystkie indices
, możesz wykonać następujące curl
polecenie z wiersza poleceń serwera programistycznego (jak wskazano w oficjalnej dokumentacji:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Tutaj uzyskujemy dostęp do cat API
(wskazywany przez wiodący _
podkreślenie) i przeglądanie indices
, który pokazuje przekrój każdego indeksu w klastrze.
Wskaźniki, typy, dokumenty i właściwości
Mając taki przykład, możemy bardziej szczegółowo zbadać konkretną strukturę interfejsów API Elasticsearch REST, które najczęściej będą składać się z trzech ustrukturyzowanych komponentów, index
, type
i document
:
localhost:9200/index/type/document
index
jest strukturą nadrzędną i najprościej jest traktowana jako database
który mieści wiele types
. I index
może reprezentować dowolną koncepcję, ale często będzie reprezentować cały system komponentów, takich jak shop
lub bookstore
.
Types
są zawarte w index
i są podobne do bazy danych tables
, z każdym type
reprezentujący kolekcję podobnych obiektów (np. shirt
lub book
).
Wreszcie document
jest pojedynczą instancją lub reprezentacją obiektu nadrzędnego type
. Dlatego książka „Hobbit” może istnieć jako książka type
w index
o nazwie księgarnia .
Usuwanie danych z Elasticsearch
Po usunięciu podstawowej składni interfejsu API REST możemy zbadać, jak wykonywać określone czynności, takie jak usuwanie danych.
Usuń pojedynczy dokument
Biorąc naszą podstawową składnię, jak pokazano powyżej, musimy użyć curl
i wyślij DELETE
Czasownik HTTP, używając -XDELETE
opcja:
$ curl -XDELETE 'localhost:9200/index/type/document'
Na przykład, aby usunąć naszą wspomnianą książkę document
, możemy użyć następującego polecenia:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Spowoduje to usunięcie document
z ID
z 1
z book
type
która znajduje się w bookstore
index
.
Usuń typ
Jak można się domyślić, przy niewielkim rozszerzeniu składni jesteśmy w stanie usunąć cały type
. Tutaj usuwamy book
type
:
$ curl -XDELETE 'localhost:9200/bookstore/book'
Usuń indeks
Na koniec, jeśli chcemy usunąć cały index
, można to zrobić przy użyciu tej samej składni, co poprzednio:
$ curl -XDELETE 'localhost:9200/bookstore'