Elasticsearch: получите список индексов
Можно ли получить список индексов, соответствующих определенному шаблону, например,
вот как получить список индексов:
curl -XGET 'localhost:9200/_stats/'
но я не смог найти способ их фильтровать, чтобы в этот список включались только индексы, совпадающие с "my_index_nr_1 *", где "*" - это дикая карта
Решение
После использования ES довольно долго вот что я использую сейчас, надеюсь, что это поможет кому-то еще:
curl -XGET '/_cat/indices/my_index_nr_1*'
Вы также можете добавить ?v
в конце, который даст вам заголовки каждого столбца в результате.
Ответы
Ответ 1
Существует чистая трюк с использованием команды _aliases, которая в сочетании с подстановочным знаком (my_index_nr_1*
ниже) будет показывать только соответствующие имена индексов и связанные индексы:
curl -XGET 'http://localhost:9200/my_index_nr_1*/_aliases?pretty'
В результате получается:
{
"my_index_nr_1_test" : {
"aliases" : { }
}
}
Очень полезно, когда у вас много индексов в кластере, но вы не хотите видеть все другие данные статистики.
Ответ 2
Для людей лучшим ответом является модифицированное резюме:
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
Однако это будет отвечать как настройками, алиасами, так и отображениями каждого индекса.
Ответ 3
Это должно работать:
curl -XGET 'http://localhost:9200/my_index_nr_1*/_stats'