Elasticsearch列表索引按名称排序

时间:2014-07-25 17:05:08

标签: sorting elasticsearch aliases

如何通过索引名称对以下查询的结果进行排序?

curl "localhost:9200/_aliases?pretty"

6 个答案:

答案 0 :(得分:26)

您可以要求ES使用ss=i

通过s=index(排序)搜索参数对结果进行排序
curl "localhost:9200/_cat/indices?pretty&s=i"
curl "localhost:9200/_cat/aliases?pretty&s=index"

要查看列标题,请添加"& v" :

curl "localhost:9200/_cat/indices?pretty&v&s=index"`.

您可以在cat/indices documentation

中找到一些解释

答案 1 :(得分:9)

我认为最好的方法是通过控制台。像这样:

$ curl --silent 'http://path.to.cluster:9200/_cat/indices' | cut -d ' ' -f2 | sort

答案 2 :(得分:7)

Elasticsearch 5x的最佳方式是这样的:

GET _cat/aliases?v&s=index:desc&h=alias,index

会给你:

alias                                     index
app-logs-alias                            app-logs-2017-12-31
backend-logs-read                         backend-logs-2017-12-31
  

s = sort,v =各种额外细节,h =要包含的标题,

答案 3 :(得分:2)

只需使用此get请求,它将显示具有列名称的所有索引。

http://localhost:9200/_cat/indices/?pretty&v

此外,不仅可以按名称对它进行排序,还可以根据需要使用s=column_name的get参数对它进行排序。

例如;可以按照您喜欢的大小进行排序:

http://localhost:9200/_cat/indices/?pretty&s=store.size

类似的名称:

http://localhost:9200/_cat/indices/?pretty&s=index

答案 4 :(得分:1)

我不认为它存在于elasticsearch api。

来自elasticsearch的回复可以是

{
   "index1": {
      "aliases": {}
   }
}

这是从响应中获取索引的伪代码

如果aliasresponse是elasticsearch的响应,那么

indexlist=[]
for (key in aliasresponse) {
    indexlist.add(key)
}

sort(indexlist)

对于排序,您可以找到库或自定义方法。

希望这会有所帮助。

答案 5 :(得分:-1)

这是一个古老的问题,但是到2020年,最好的方法是:

和基巴纳一起:

GET _cat/indices/?pretty&s=store.size:desc

具有卷曲:

http://localhost:9200/_cat/indices/?pretty&s=store.size:desc

最后按Desc排序