2015-01-05 6 views
7

現在(v.1.4.2)existence of an index(理想的ではないかもしれませんが)とclose and open an indexをチェックすることができます。インデックスが開いているか閉じているかを確認する方法はありません。elasticsearchインデックスが開いているか閉じているかを確認してください

status呼び出しは、私が探している情報の代わりに例外処理のケースでより多くの "IndexClosedException"を返します。

これはどのようにチェックしますか?または、すでに閉じられているインデックスを渡すことなく(おそらく)検索する別の方法がありますか?

答えて

5

使用GET /_cat/indices/my_index?v、あなたはこのバックのようなものを得る:

health status index  pri rep docs.count docs.deleted store.size pri.store.size 
yellow open my_index 5 1   2   0  5.3kb   5.3kb 

をそして、あなたはstatus列を見ることができます。単一のインデックスのための

+0

は、これらの猫のAPIについては知りませんでした。人間の目のためのより多くのより良い。 – tostasqb

+0

[こちらは](http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_cat_api.html)cat apiの良いサマリーです。 –

3

_catエンドポイントは、あなたがより多くのスクリプト/プログラム優しい何かをしたい場合は、あなたが何かなどを行うことができ、人間のための素晴らしいですが...

検索:

curl -GET 'http://es-host:9200/_cluster/state' | jq '.metadata.indices["index_name"].state' 

一覧すべてのインデックス:

curl -GET 'http://es-host:9200/_cluster/state' | jq '.metadata.indices | to_entries | .[] | {index: .key, state: .value.state}' 
+0

「jq」は何を表していますか? – tostasqb

+0

ないアイデアが、それはJSONの解析amazingnessです:http://stedolan.github.io/jq/は –

+0

コマンドは私に 'JQを与えるだけのことです:コマンドが – tostasqb

2

単一のインデックスのためのオープン/クローズ答えを得るための最も簡潔な方法は、猫を使用することですが、対象インデックスのためのAPIを指標とOに戻っ列を制限しますNLY statusを含める:

curl http://localhost:9200/_cat/indices/some_index?h=status 

これはopenまたはcloseのいずれかを返す必要があります。この同じ戦略を指標の健康状態(赤/黄/緑)に使用します。

2

これは私が近いと予想されているものが付属しています考えてthis問題、に与えられた答えです。

あなたは代わりにクラスタ状態APIを使用することができます。

GET _cluster/state/metadata/my_index 

かさえ:

GET _cluster/state/metadata/my_index?filter_path=metadata.indices.*.state 
関連する問題