ElasticSearchサーバのすべてのインデックスをリストアップしますか?

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_deuteronomymungojerrie であれば、結果は以下のようになります。

{
  "old_deuteronomy" : {
    "aliases" : { }
  },
  "mungojerrie" : {
    "aliases" : {
      "rumpleteazer" : { },
      "that_horrible_cat" : { }
    }
  }
}
解説 (4)

localhost:9200/_status` と問い合わせると、インデックスの一覧とそれぞれの情報が得られます。レスポンスは以下のようになります。

{
  "ok" : true,
  "_shards" : { ... },
  "indices" : {
    "my_index" : { ... },
    "another_index" : { ... }
  }
}
解説 (5)

_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/

https://github.com/iterativ/elasticsearch-listindices

解説 (2)