Jednou z jedinečných konstrukčních vlastností Elasticsearch je, že na rozdíl od většiny tradičních systémů nebo databází jsou všechny úkoly, jako je připojení a manipulace s Elasticsearch, prováděny pomocí REST API , což znamená, že téměř každý dotaz nebo příkaz provedený na vašem uzlu Elasticsearch je jednoduchý HTTP požadavek na konkrétní URL.
V závislosti na HTTP verb odeslané a URL, na které je sloveso odesláno, může Elasticsearch provádět širokou škálu akcí na uzlu nebo dokonce na clusteru.
Struktura adresy URL rozhraní REST API Elasticsearch
Na nejzákladnější úrovni, chcete-li provést příkaz v Elasticsearch, budete muset odeslat sloveso HTTP na adresu URL vašeho uzlu Elasticsearch. Pro vývoj je to obvykle localhost:9200 .
Ve většině V těchto případech je nejjednodušší způsob odeslání požadavku do REST API Elasticsearch pomocí užitečného nástroje příkazového řádku cURL , což je jednoduchý nástroj používaný k přenosu téměř jakéhokoli druhu internetových dat.
Chcete-li například vypsat všechny indices , můžete spustit následující curl příkaz z příkazového řádku vašeho vývojového serveru (jak je uvedeno v oficiální dokumentaci:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
Zde přistupujeme k cat API (označeno úvodním _ podtržítko) a zobrazení indices , který ukazuje průřez každým indexem v clusteru.
Indexy, typy, dokumenty a vlastnosti
S příkladem na místě můžeme podrobněji prozkoumat specifickou strukturu rozhraní Elasticsearch REST API, která se nejčastěji budou skládat ze tří strukturovaných komponent, index , type a document :
localhost:9200/index/type/document
index je nadřazená struktura a je nejjednodušeji myšlena jako database která obsahuje mnoho types . A index může představovat jakýkoli koncept, ale často bude představovat celý systém komponent, jako je shop nebo bookstore .
Types jsou obsaženy v index a jsou podobné databázovým tables , s každým type představující kolekci podobných předmětů (jako shirt nebo book ).
Nakonec document je jedna instance nebo reprezentace objektu nadřazeného type . Kniha „Hobit“ tedy může existovat jako kniha type v index s názvem knihkupectví .
Smazání dat z Elasticsearch
Se základní syntaxí REST API můžeme prozkoumat, jak provádět konkrétní akce, jako je mazání dat.
Smazat jeden dokument
Vezmeme-li naši základní syntaxi, jak je vidět výše, musíme použít curl a odešlete DELETE HTTP sloveso pomocí -XDELETE možnost:
$ curl -XDELETE 'localhost:9200/index/type/document'
Například k odstranění našeho výše uvedeného knižního document , můžeme použít následující příkaz:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
Tím smažete document s ID z 1 z book type který je v bookstore index .
Smazat typ
Jak asi tušíte, jen s mírným rozšířením syntaxe jsme schopni odstranit celý type . Zde odstraňujeme book type :
$ curl -XDELETE 'localhost:9200/bookstore/book'
Smazat rejstřík
A konečně, pokud chceme smazat celý index , lze to provést pomocí stejné syntaxe jako dříve:
$ curl -XDELETE 'localhost:9200/bookstore'