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'