Elasticsearch список индексов отсортированных по имени

Как результаты следующего запроса могут быть отсортированы по имени индекса?

curl "localhost:9200/_aliases?pretty"

4 ответов


Я думаю, что лучший способ сделать это-через консоль. Что-то вроде этого:--2-->

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


вы можете попросить ES сортировать результаты через s (сортировка) searchParameter с помощью s=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


лучший способ для 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 = сортировка, v = различные дополнительные детали, H = заголовки для включения,


Я не думаю, что он существует с помощью Elasticsearch api.

ответ от elasticsearch может быть

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

вот псевдокод для получения индекса из response

Если aliasresponse является ответом от elasticsearch, то

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

sort(indexlist)

для сортировки, вы можете найти libaries или пользовательские методы.

надеюсь, что это помогает.