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"