ElasticSearch Получить имена индексов и размер магазина

Я пытаюсь захватить список всех индексов и их размеры таким образом, чтобы я мог захватить информацию с помощью службы Angular $http, а затем перебирать информацию, используя ng-repeat, предпочтительно с чем-то вроде:

<ul ng-repeat="elsindex in elsIndexHttpResponse"> <li>{{elsindex.name}}:{{elsindex.size}}</li> </ul>

Самое близкое, что я нашел, это: http://localhost:9200/_cat/indices?h=index,store.size

Кроме:

а. его ответы не в json, поэтому легко ссылаться на него с помощью элементов ng-repeat <li> не будет работать; и

б. я хотел бы, если возможно, получить размерный результат, чтобы отразить тот же размер блока (например, байты).

Если это связано с чем-то сложным, я был бы благодарен за указатели, где я должен сосредоточиться.

Я использую elasticsearch v1.4.4

Большое спасибо

Ответ 1

Размер индекса в байтах включается в вызов API статистики индексов:

curl http://localhost:9200/_stats/indexing,store

Для хорошо отформатированного вывода JSON добавьте " pretty" в конец URL:

curl http://localhost:9200/_stats/indexing,store?pretty

См. Документацию API статистики показателей для получения дополнительной информации и соответствующей информации.

Ответ 2

Я понимаю, что этот вопрос уже датируется, но хотел добавить свои 2 цента.

HTTP://локальный: 9200/_cat/индексы Н = индекс, store.size & байт = кб и формат = JSON

На самом деле вы получите именно то, что вы просили:

  • format = json → форматирует вывод в json
  • bytes = kb → выводит размер в килобайтах

Информация, касающаяся единицы размера, была получена из документа doc cats.

Возможные значения для аргумента bytes

Информация о формате была попыткой в Sense, которая имеет некоторые функции автозаполнения, весьма полезные для обнаружения таких опций.

Приветствия.

Ответ 3

Просто небольшая модификация сверху ответа.

curl -X GET "localhost:9200/_cat/indices?h=index,store.size&bytes=gb?pretty"