Elasticsearch
キバナを使った弾性探査
サーチ…
前書き
Kibanaはelasticsearch用のフロントエンドデータ視覚化ツールです。キバナをインストールするには、キバナのドキュメントを参照してください。 localhostでkibanaを実行するには、 https:// localhost:5601に行き、kibana consoleに移動します。
木場を使ってあなたのクラスターを探索する
コマンドの構文は次のようになります。
<REST Verb> /<Index>/<Type>/<ID>
次のコマンドを実行し、Kibana Consoleを介してelasticsearchクラスタを探索します。
- クラスタの正常性を確認するには
GET /_cat/health?v
- すべてのインデックスを一覧表示する
GET /_cat/indices?v
- 車名で索引を作成する場合
PUT /car?pretty
- id 1を使用して、外部型の名前carで文書を索引付けする場合
PUT /car/external/1?pretty
{
"name": "Tata Nexon"
}
上記のクエリの応答は次のようになります。
{
"_index": "car",
"_type": "external",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
- 上記のドキュメントを取得するには、次のコマンドを使用します。
GET /car/external/1?pretty
- インデックスを削除する場合
DELETE /car?pretty
elasticsearchデータを変更する
Elasticsearchは、ほぼリアルタイムでデータ操作とデータ検索機能を提供します。この例では、更新、削除、およびバッチ処理操作があります。
- 同じ文書を更新しています。すでに/ car / external / 1に文書を索引付けしているとします。その後、データを索引付けするコマンドを実行すると、前の文書が置き換えられます。
PUT /car/external/1?pretty
{
"name": "Tata Nexa"
}
"Tata Nexon"という名前のid 1の以前の車のドキュメントは新しい名前 "Tata Nexa"で更新されます
- 明示的なIDでデータを索引付けする
POST /car/external?pretty
{
"name": "Jane Doe"
}
IDなしで文書を索引付けするために、 PUT動詞の代わりにPOST動詞を使用します。 IDを指定しないと、elasticsearchはランダムなIDを生成し、それを使ってドキュメントのインデックスを作成します。
- Idで部分的に前の文書を更新する。
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nex" }
}
- 追加情報でドキュメントを更新する
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nexon", "price": 1000000 }
}
- 簡単なスクリプトを使用してドキュメントを更新します。
POST /car/external/1/_update?pretty
{
"script" : "ctx._source.price += 50000"
}
ctx._sourceは、更新しようとしている現在のソース文書を参照します。上記のスクリプトは、同時に更新されるスクリプトを1つだけ提供します。
- ドキュメントの削除
DELETE /car/external/1?pretty
注:クエリAPIによる削除を使用してすべてのドキュメントを削除するよりも、インデックス全体を削除するほうが効率的です
バッチ処理
elasticsearchは、ドキュメントの更新と削除のインデックス作成とは別に、 _bulk APIを使用して上記の操作をバッチで実行する機能も提供します。
- _bulk APIを使用して複数のドキュメントを更新する
POST /car/external/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "Tata Nexon" }
{"index":{"_id":"2"}}
{"name": "Tata Nano" }
- _bulk APIを使用してドキュメントを更新および削除する
POST /car/external/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "Tata Nano" } }
{"delete":{"_id":"2"}}
操作が失敗すると、バルクAPIは停止しません。すべての操作を実行し、最終的にすべての操作のレポートを返します。