Elasticsearch:获取索引列表

时间:2014-06-23 17:04:01

标签: elasticsearch

是否可以获得与某种模式匹配的索引列表,例如

这是获取索引列表的方法:

curl -XGET 'localhost:9200/_stats/'

但是我找不到过滤它们的方法,所以这个列表只包含与“my_index_nr_1 *”匹配的索引,其中“*”将是一张外卡

解决方案

使用ES已经有一段时间了,这就是我现在使用的,希望它能帮助别人:

curl -XGET '/_cat/indices/my_index_nr_1*'

您还可以在末尾添加?v,这会为您提供结果中每列的标题。

3 个答案:

答案 0 :(得分:21)

使用_aliases命令有一个巧妙的技巧,当与通配符(下面的my_index_nr_1*结合使用时)只会显示匹配的索引名称和相关索引:

curl -XGET 'http://localhost:9200/my_index_nr_1*/_aliases?pretty'

我得到的结果是:

{
  "my_index_nr_1_test" : {
    "aliases" : { }
  }
}

如果您在群集上有很多索引但又不想查看所有其他统计信息,那么非常有用。

答案 1 :(得分:12)

对于人类而言,最佳答案是修改后的摘要:

curl -XGET localhost:9200/_cat/indices/my_index_nr_1*?v

对于机器,最好的答案可能是(?pretty的变体可供您查看其输出):

curl -XGET localhost:9200/my_index_nr_1*/_settings?pretty

这将获得与其设置匹配的所有索引的列表。上面的_aliases答案只是此请求的变体。您甚至可以将请求修改为:

curl -XGET localhost:9200/my_index_nr_1*?pretty

但是,这将响应每个索引的设置,别名和映射。

答案 2 :(得分:1)

这应该有效:

curl -XGET 'http://localhost:9200/my_index_nr_1*/_stats'