Подтвердить что ты не робот

Elasticsearch: получите список индексов

Можно ли получить список индексов, соответствующих определенному шаблону, например,

вот как получить список индексов:

curl -XGET 'localhost:9200/_stats/'

но я не смог найти способ их фильтровать, чтобы в этот список включались только индексы, совпадающие с "my_index_nr_1 *", где "*" - это дикая карта

Решение

После использования ES довольно долго вот что я использую сейчас, надеюсь, что это поможет кому-то еще:

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

Вы также можете добавить ?v в конце, который даст вам заголовки каждого столбца в результате.

4b9b3361

Ответ 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'