ElasticSearchサーバに存在するすべてのインデックスをリストアップしたいと思います。これを試してみました。
curl -XGET localhost:9200/
を試してみましたが、このような結果になりました。
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
すべてのインデックスのリストが欲しいのですが・・・。
クラスタ内のすべてのインデックスの簡潔なリストについては
curl http://localhost:9200/_aliases
を呼び出すと、インデックスとそのエイリアスの一覧が表示されます。
綺麗に印刷したい場合は、pretty=true
を追加してください。
curl http://localhost:9200/_aliases?pretty=true
インデックスの名前が old_deuteronomy
と mungojerrie
であれば、結果は以下のようになります。
{
"old_deuteronomy" : {
"aliases" : { }
},
"mungojerrie" : {
"aliases" : {
"rumpleteazer" : { },
"that_horrible_cat" : { }
}
}
}
_statsコマンドでは、希望するメトリクスを指定して結果をカスタマイズする方法があります。指標を得るためのクエリは以下の通りです。
GET /_stats/indices
_stats`クエリの一般的なフォーマットは次のとおりです。
/_stats
/_stats/{metric}
/_stats/{metric}/{indexMetric}
/{index}/_stats
/{index}/_stats/{metric}
ここで、メトリクスは
indices, docs, store, indexing, search, get, merge,
refresh, flush, warmer, filter_cache, id_cache,
percolate, segments, fielddata, completion
自分への練習として,小さなelasticsearchプラグインを書き,elasticsearchのインデックスを他の情報なしにリストアップする機能を提供しました。以下のURLで見ることができます。
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/