Elasticsearchのユニークな設計機能の1つは、ほとんどの従来のシステムやデータベースとは異なり、Elasticsearchへの接続や操作などのすべてのタスクがREST APIを使用して実行されることです。 、つまり、Elasticsearchノードで実行されるほぼすべてのクエリまたはコマンドは、特定のURLへの単純なHTTPリクエストです。
HTTP verbによって異なります 送信された動詞と送信先のURLを使用すると、Elasticsearchはノードまたはクラスターでさえもさまざまなアクションを実行できます。
Elasticsearch RESTAPIURL構造
最も基本的なレベルでは、Elasticsearchでコマンドを実行するには、ElasticsearchノードのURLにHTTP動詞を送信する必要があります。開発の場合、通常、これはlocalhost:9200です。 。
ほとんど 場合によっては、ElasticsearchのREST APIにリクエストを送信する最も簡単な方法は、便利なコマンドラインツールであるcURLを使用することです。 、これはほぼすべての種類のインターネットデータを転送するために使用されるシンプルなツールです。
たとえば、すべてのindicesを一覧表示するには 、次のcurlを実行できます 開発サーバーのシェルプロンプトからのコマンド(公式ドキュメントに示されているように:
$ curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted bookstore.size pri.bookstore.size
ここでは、cat APIにアクセスしています (先頭の_で示されます アンダースコア)およびindicesの表示 、クラスター内の各インデックスの断面を示しています。
インデックス、タイプ、ドキュメント、およびプロパティ
例を使用して、Elasticsearch REST APIの特定の構造をより詳細に調べることができます。これは、ほとんどの場合、3つの構造化コンポーネントであるindexで構成されます。 、type 、およびdocument :
localhost:9200/index/type/document
index は親構造であり、最も単純にdatabaseと考えられています。 多くのtypesを収容します 。そしてindex 任意の概念を表すことができますが、多くの場合、shopなどのコンポーネントのシステム全体を表します。 またはbookstore 。
types indexに含まれています データベースのtablesに似ています 、各type 類似のオブジェクトのコレクションを表す(shirtなど) またはbook 。
最後に、document 親のtypeのオブジェクトの単一のインスタンスまたは表現です 。したがって、「TheHobbit」という本は本として存在する可能性があります。 type index内 書店という名前 。
Elasticsearchからのデータの削除
基本的なRESTAPI構文が邪魔にならないので、データの削除などの特定のアクションを実行する方法を探ることができます。
上記の基本的な構文を使用して、curlを使用する必要があります DELETEを送信します -XDELETEを使用したHTTP動詞 オプション:
$ curl -XDELETE 'localhost:9200/index/type/document'
たとえば、前述の本のdocumentを削除するには 、次のコマンドを使用する場合があります:
$ curl -XDELETE 'localhost:9200/bookstore/book/1'
これにより、documentが削除されます IDを使用 1の bookから type bookstore内にあります index 。
ご想像のとおり、構文がわずかに広がっているだけで、type全体を削除できます。 。ここでは、bookを削除しています type :
$ curl -XDELETE 'localhost:9200/bookstore/book'
最後に、index全体を削除したい場合 、これは以前と同じ構文を使用して実行できます:
$ curl -XDELETE 'localhost:9200/bookstore'