Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API

API компактного и выровненного текста (CAT)

Справочник по новым API

Для получения самых актуальных данных об API, обратитесь к API компактного и выровненного текста (CAT).

Введение

JSON отлично подходит… для компьютеров. Даже при красивом форматировании поиск взаимосвязей в данных может быть утомительным. Глазам человека, особенно при просмотре терминала, необходим компактный и выровненный текст. API компактного и выровненного текста (CAT) предназначены для удовлетворения этой потребности.

API cat предназначены только для использования человеком с помощью консоли Kibana или командной строки. Они не предназначены для использования приложениями. Для использования приложениями рекомендуется использовать соответствующий API JSON.

Все команды cat принимают параметр запроса help для просмотра всех заголовков и информации, которые они предоставляют, и команда /_cat в одиночку перечисляет все доступные команды.

Общие параметры

Подробно

Каждая из команд принимает параметр запроса v для включения подробного вывода. Например:

resp = client.cat.master(
    v=True,
)
print(resp)
response = client.cat.master(
  v: true
)
puts response
const response = await client.cat.master({
  v: "true",
});
console.log(response);
GET _cat/master?v=true

Возможный ответ:

id                     host      ip        node
u_n93zwxThWHi1PDBJAGAg 127.0.0.1 127.0.0.1 u_n93zw

Справка

Каждая из команд принимает параметр запроса help, который выведет доступные столбцы. Например:

resp = client.cat.master(
    help=True,
)
print(resp)
response = client.cat.master(
  help: true
)
puts response
const response = await client.cat.master({
  help: "true",
});
console.log(response);
GET _cat/master?help

Возможный ответ:

id   |   | node id
host | h | host name
ip   |   | ip address
node | n | node name

help не поддерживается, если используется какой-либо необязательный параметр URL. Например, GET _cat/shards/my-index-000001?help или GET _cat/indices/my-index-*?help приводит к ошибке. Используйте GET _cat/shards?help или GET _cat/indices?help вместо этого.

Заголовки

Каждая из команд принимает параметр запроса h, который заставляет отображаться только указанные столбцы. Например:

resp = client.cat.nodes(
    h="ip,port,heapPercent,name",
)
print(resp)
response = client.cat.nodes(
  h: 'ip,port,heapPercent,name'
)
puts response
const response = await client.cat.nodes({
  h: "ip,port,heapPercent,name",
});
console.log(response);
GET _cat/nodes?h=ip,port,heapPercent,name

Ответ:

127.0.0.1 9300 27 sLBaIGK

Вы также можете запросить несколько столбцов, используя простые подстановочные знаки, такие как /_cat/thread_pool?h=ip,queue*, чтобы получить все заголовки (или псевдонимы), начинающиеся с queue.

Числовые форматы

Многие команды предоставляют несколько типов числового вывода, таких как байты, размер или значение времени. По умолчанию эти типы форматируются для человека, например, 3.5mb вместо 3763212. Человеческие значения не могут быть сортированы по числовому порядку, поэтому для операций, где порядок важен, можно изменить этот формат.

Предположим, вам нужно найти самый большой индекс в кластере (используемое хранилище всеми фрагментами, а не количество документов). API /_cat/indices идеально подходит. Вам нужно добавить три вещи в запрос API:

  1. Параметр запроса bytes со значением b для получения разрешения на уровне байтов.
  2. Параметр (сортировка) s со значением store.size:desc и запятой с index:asc для сортировки вывода по хранилищу фрагмента в порядке убывания, а затем по имени индекса в порядке возрастания.
  3. Параметр (подробно) v для включения заголовков столбцов в ответ.
resp = client.cat.indices(
    bytes="b",
    s="store.size:desc,index:asc",
    v=True,
)
print(resp)
response = client.cat.indices(
  bytes: 'b',
  s: 'store.size:desc,index:asc',
  v: true
)
puts response
const response = await client.cat.indices({
  bytes: "b",
  s: "store.size:desc,index:asc",
  v: "true",
});
console.log(response);
GET _cat/indices?bytes=b&s=store.size:desc,index:asc&v=true

API возвращает следующий ответ:

health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size dataset.size
yellow open   my-index-000001  u8FNjxh8Rfy_awN11oDKYQ   1   1       1200            0      72171         72171         72171
green  open   my-index-000002  nYFWZEO7TUiOjLQXBaYJpA   1   0          0            0        230          230            230

Если вы хотите изменить единицы измерения времени, используйте параметр time.

Если вы хотите изменить единицы измерения размера, используйте параметр size.

Если вы хотите изменить единицы измерения байтов, используйте параметр bytes.

Ответ в формате текст, json, smile, yaml или cbor

% curl 'localhost:9200/_cat/indices?format=json&pretty'
[
  {
    "pri.store.size": "650b",
    "health": "yellow",
    "status": "open",
    "index": "my-index-000001",
    "pri": "5",
    "rep": "1",
    "docs.count": "0",
    "docs.deleted": "0",
    "store.size": "650b"
  }
]

В настоящее время поддерживаются следующие форматы (для параметра ?format=): - текст (по умолчанию) - json - smile - yaml - cbor

Альтернативно, вы можете установить заголовок HTTP "Accept" на соответствующий формат мультимедиа. Все вышеперечисленные форматы поддерживаются, параметр GET имеет приоритет над заголовком. Например:

% curl '192.168.56.10:9200/_cat/indices?pretty' -H "Accept: application/json"
[
  {
    "pri.store.size": "650b",
    "health": "yellow",
    "status": "open",
    "index": "my-index-000001",
    "pri": "5",
    "rep": "1",
    "docs.count": "0",
    "docs.deleted": "0",
    "store.size": "650b"
  }
]

Сортировка

Каждая из команд принимает параметр запроса s, который сортирует таблицу по указанным в качестве значения параметра столбцам. Столбцы указываются либо по имени, либо по псевдониму и предоставляются через запятую. По умолчанию сортировка выполняется по возрастанию. Добавление :desc к столбцу инвертирует порядок для этого столбца. :asc также принимается, но демонстрирует такое же поведение, как порядок сортировки по умолчанию.

Например, со строкой сортировки s=column1,column2:desc,column3 таблица будет отсортирована по столбцу1 в порядке возрастания, по столбцу2 в порядке убывания и по столбцу3 в порядке возрастания.

resp = client.cat.templates(
    v=True,
    s="order:desc,index_patterns",
)
print(resp)
response = client.cat.templates(
  v: true,
  s: 'order:desc,index_patterns'
)
puts response
const response = await client.cat.templates({
  v: "true",
  s: "order:desc,index_patterns",
});
console.log(response);
GET _cat/templates?v=true&s=order:desc,index_patterns

возвращает:

name                  index_patterns order version
pizza_pepperoni       [*pepperoni*]  2
sushi_california_roll [*avocado*]    1     1
pizza_hawaiian        [*pineapples*] 1

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/cat.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API