Я хотел бы перечислить все индексы, присутствующие на сервере ElasticSearch. Я попробовал это:
curl -XGET localhost:9200/
но это просто дает мне это:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Я хочу список всех индексов ..
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
_cluster/health?level=indices
Пытаться
Это даст вам следующий очевидный вывод в табличной форме
источник
Вы можете запросить,
localhost:9200/_status
и это даст вам список индексов и информацию о каждом. Ответ будет выглядеть примерно так:источник
GET /_stats/indexes
/_stats/indices
так как это правильное множественное число, а также ключ, используемый в/_status
и в/_stats
._nodes/stats
и_nodes/status
@KimberlyWКоманда _stats позволяет настроить результаты, указав желаемые метрики. Чтобы получить индексы, запрос выглядит следующим образом:
Общий формат
_stats
запроса:Где метрики:
В качестве упражнения для себя я написал небольшой плагин эластичного поиска, предоставляющий функциональность для перечисления индексов эластичного поиска без какой-либо другой информации. Вы можете найти его по следующему адресу:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
источник
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
Я использую это, чтобы получить все индексы:
С этим списком вы можете работать над ...
пример
Чтобы получить 3-й столбец выше (названия индексов):
ПРИМЕЧАНИЕ: вы также можете использовать
awk '{print $3}'
вместоcut -d\ -f3
.Заголовки столбцов
Вы также можете
?v
добавить суффикс к запросу, чтобы добавить заголовок столбца. Это нарушитcut...
метод, поэтому я бы рекомендовал использоватьawk..
выделение на этом этапе.источник
curl -s 'http://localhost:9200/_cat/indices?h=index'
распечатает только имя индекса. Не нужно использовать хитрости оболочки для фильтрации столбца.tr -s ' '
ранее,cut
чтобы сжать пробелы), иначе вы не получите имя индекса, если статус таков,red
что он будет заполнен пробелами и будетcut
рассматривать каждый отдельный пробел как разделитель. новое поле, даже если это «поле»Я бы также порекомендовал сделать / _cat / indices, который дает хороший читабельный список ваших индексов.
источник
Самый простой способ получить список только индексов - использовать ответ, приведенный выше, с параметром 'h = index':
источник
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Это выведет как ниже
источник
Я дам вам запрос, который вы можете запустить на кибане.
и версия CURL будет
источник
Для более (Elasticsearch Официальный сайт)
источник
Чтобы вывести список индексов, вы можете сделать: curl 'localhost: 9200 / _cat / indices? V' Документация Elasticsearch
источник
Доступ к защищенному эластичному поиску через Curl (обновление 2020 г.)
Если
Elastic Search
он защищен, вы можете использовать эту команду для вывода спискаисточник
_stats/indices
дает результат сindices
.источник
Люди здесь ответили, как сделать это в изяществе и смысле, некоторые люди, возможно, должны сделать это в Java.
Вот оно идет
источник
Попробуйте этот cat API: он предоставит вам список всех показателей здоровья и другие подробности.
CURL -XGET http: // localhost: 9200 / _cat / indices
источник
Для Elasticsearch 6.X я нашел следующее наиболее полезным. Каждый предоставляет разные данные в ответе.
источник
Вы также можете получить конкретный индекс, используя
Для получения дополнительной информации
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
источник
Вот еще один способ просто увидеть индексы в БД:
источник
Один из лучших способов отображения индексов + для отображения его статуса вместе со списком: это просто выполнение запроса ниже.
Примечание: желательно использовать Sense, чтобы получить правильный вывод.
Пример вывода, как показано ниже. Основным преимуществом является то, что он в основном показывает имя индекса и сегменты, в которых он сохранен, размер индекса и ip и т.д.
источник
Я использую
_stats/indexes
конечную точку, чтобы получить блок данных json, а затем фильтровать с помощью jq .Если вы не хотите кавычки, добавьте
-r
флаг в JQ.Да, конечная точка -
indexes
это ключ данныхindices
, поэтому они тоже не могли определиться :)Мне нужно было это убрать эти индексы мусора, созданные внутренним сканированием безопасности (nessus).
PS. Я настоятельно рекомендую ознакомиться с jq, если вы собираетесь взаимодействовать с ES из командной строки.
источник
API Java
источник
Если вы работаете в Scala, способ сделать это и использовать
Future
это - создать RequestExecutor, затем использовать IndicesStatsRequestBuilder и административный клиент для отправки вашего запроса.Исполнитель взят из этого поста в блоге, который, безусловно, хорошо читается, если вы пытаетесь запрашивать ES программно, а не с помощью curl. Если у вас есть это, вы можете легко создать список всех индексов, например:
client
это экземпляр клиента, который может быть узлом или транспортным клиентом, в зависимости от того, что вам подходит. Вы также должны иметь неявноеExecutionContext
область действия для этого запроса. Если вы попытаетесь скомпилировать этот код без него, вы получите предупреждение от компилятора scala о том, как его получить, если у вас его еще нет.Мне нужно было количество документов, но если вам действительно нужны только имена индексов, вы можете извлечь их из ключей карты, а не из
IndexStats
:Этот вопрос появляется, когда вы ищете, как это сделать, даже если вы пытаетесь сделать это программно, поэтому я надеюсь, что это поможет всем, кто хочет сделать это в scala / java. В противном случае, пользователи curl могут просто делать так, как говорит главный ответ, и использовать
источник
Вы можете попробовать эту команду
curl -X GET http: // localhost: 9200 / _cat / indices? v
источник
У меня были Kibana и ES, установленные на машине. Но я не знал деталей (по какому пути или порту) был узел ES на этой машине.
Итак, как вы можете сделать это из Kibana (версия 5.6)?
GET _cat/indices
Я был заинтересован в поиске размера конкретного индекса ES
источник
Если в вашей системе установлен curl, попробуйте следующую простую команду: curl -XGET xx.xx.xx.xx: 9200 / _cat / indices? V
Вышеупомянутая команда дает вам результат в этом формате: результат для извлечения всех индексов
источник