2015-10-28 5 views
1

Я пытаюсь получить список всех моих индексов Elasticsearch, имеющих 0 документов.Elolicearch curl query: Список индексов, имеющих 0 документов

Мой подход был запрос _cat/indices

curl -GET 'http://localhost:9200/_cat/indices' -d '{ 
    "query": { "match": { "docs.count": "0" } } 
}' 

Но это, кажется, не работает, как я вижу индексы с более чем 0 документы не указаны.

Cat indices документацию можно найти здесь: https://www.elastic.co/guide/en/elasticsearch/reference/1.6/cat-indices.html

Есть предложения?

спасибо.

+0

Почему бы вам не написать «grep» вместо результата? –

+0

На самом деле то, что я пытаюсь сделать, это удалить эти индексы из моего кластера (те, у которых есть 0 документов). Единственная характеристика, которая у них есть, - это совпадающее количество документов. Смогу ли я «grep» на 'docs.count'? – halpsb

ответ

0

Я чувствую, что API awk и cat будет лучшим выбором. Вы можете использовать приведенную ниже команду, чтобы получить то, что вам нужно.

curl -GET 'http://localhost:9200/_cat/indices' 2>/dev/null | awk ' ($6 == 0) {print $3}' 
+0

Спасибо, это хорошо работает! Можно ли легко удалить возвращаемые элементы с помощью этого метода? – halpsb

+0

Я считаю, что у нас нет других методов. –

+0

Я попытался применить '-XDELETE' к вашей команде различными способами, но не смог заставить ее работать :(Любые идеи? – halpsb