Если вы хотите получить список всех индексов в кластере Elasticsearch, есть несколько способов сделать это. В следующих примерах предполагается использование cURL для отправки HTTP-запросов, но подойдет и любой другой аналогичный инструмент. Также можно использовать плагин Sense для Kibana, который предоставляет удобный пользовательский интерфейс, более простой в использовании, чем терминал командной строки.
Первый способ использует API _cat, как показано ниже.
1 | curl http://localhost:9200/_cat/indices?v |
Параметр запроса v добавляет строку заголовка к выводу. Вот пример вывода данных с помощью приведенной выше команды:
1 2 3 | health status index pri rep docs.count docs.deleted store.size pri.store.size yellow open .kibana 1 1 1 0 3.1kb 3.1kb yellow open myindex 5 1 0 0 650b 650b |
Как видно из приведенного выше примера, эта команда также показывает некоторую полезную информацию об индексах, такую как их состояние, количество шардов, документов и многое другое.
Для того что бы получить список индексов в формате JSON, достаточно добавить параметр format
1 | curl http://localhost:9200/_cat/indices?format=json |
В отличие от API _cat, следующие команды возвращают JSON вместо "дружественного человеку" вывода. Кроме того, они не предоставляют никакой из вышеперечисленной информации, поэтому выбор команды зависит от вашего случая использования, то есть от того, нужен ли вам ответ в формате JSON (например, для отображения вывода в вашем приложении) и нужна ли вам какая-либо информация, которую предоставляет вышеуказанная команда.
Вы также можете использовать API _aliases, который также вернет все псевдонимы, которые могут быть у каждого индекса.
1 | curl http://localhost:9200/_aliases |
Ниже приведен пример вывода для приведенной выше команды.
1 | {".kibana":{"aliases":{}},"myindex":{"aliases":{}}} |
Обратите внимание, что если вы хотите вернуть красивый JSON, чтобы его было легче читать, просто добавьте ?pretty к команде, например, так: curl http://localhost:9200/_aliases?pretty. Это даст следующий результат.
1 2 3 4 5 6 7 8 | { ".kibana" : { "aliases" : { } }, "myindex" : { "aliases" : { } } } |
Это все, что нужно, чтобы перечислить все индексы на сервере или кластере Elasticsearch.