| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 | [[cat]]= cat APIs[partintro]--["float",id="intro"]== IntroductionJSON is great... for computers.  Even if it's pretty-printed, tryingto find relationships in the data is tedious.  Human eyes, especiallywhen looking at an ssh terminal, need compact and aligned text.  Thecat API aims to meet this need.All the cat commands accept a query string parameter `help` to see allthe headers and info they provide, and the `/_cat` command alone lists allthe available commands.[float][[common-parameters]]== Common parameters[float][[verbose]]=== VerboseEach of the commands accepts a query string parameter `v` to turn onverbose output. For example:[source,js]--------------------------------------------------GET /_cat/master?v--------------------------------------------------// CONSOLEMight respond with:[source,js]--------------------------------------------------id                     host      ip        nodeu_n93zwxThWHi1PDBJAGAg 127.0.0.1 127.0.0.1 u_n93zw--------------------------------------------------// TESTRESPONSE[s/u_n93zw(xThWHi1PDBJAGAg)?/.+/ _cat][float][[help]]=== HelpEach of the commands accepts a query string parameter `help` which willoutput its available columns. For example:[source,js]--------------------------------------------------GET /_cat/master?help--------------------------------------------------// CONSOLEMight respond respond with:[source,js]--------------------------------------------------id   |   | node idhost | h | host nameip   |   | ip addressnode | n | node name--------------------------------------------------// TESTRESPONSE[s/[|]/[|]/ _cat][float][[headers]]=== HeadersEach of the commands accepts a query string parameter `h` which forcesonly those columns to appear. For example:[source,js]--------------------------------------------------GET /_cat/nodes?h=ip,port,heapPercent,name--------------------------------------------------// CONSOLEResponds with:[source,js]--------------------------------------------------127.0.0.1 9300 27 sLBaIGK--------------------------------------------------// TESTRESPONSE[s/9300 27 sLBaIGK/\\d+ \\d+ .+/ _cat]You can also request multiple columns using simple wildcards like`/_cat/thread_pool?h=ip,bulk.*` to get all headers (or aliases) startingwith `bulk.`.[float][[numeric-formats]]=== Numeric formatsMany commands provide a few types of numeric output, either a byte, sizeor a time value.  By default, these types are human-formatted,for example, `3.5mb` instead of `3763212`.  The human values are notsortable numerically, so in order to operate on these values whereorder is important, you can change it.Say you want to find the largest index in your cluster (storage usedby all the shards, not number of documents).  The `/_cat/indices` APIis ideal.  We only need to tweak two things.  First, we want to turnoff human mode.  We'll use a byte-level resolution.  Then we'll pipeour output into `sort` using the appropriate column, which in thiscase is the eighth one.[source,sh]--------------------------------------------------% curl '192.168.56.10:9200/_cat/indices?bytes=b' | sort -rnk8green wiki2 3 0 10000   0 105274918 105274918green wiki1 3 0 10000 413 103776272 103776272green foo   1 0   227   0   2065131   2065131--------------------------------------------------// NOTCONSOLEIf you want to change the <<time-units,time units>>, use `time` parameter.If you want to change the <<size-units,size units>>, use `size` parameter.If you want to change the <<byte-units,byte units>>, use `bytes` parameter.[float]=== Response as text, json, smile, yaml or cbor[source,sh]--------------------------------------------------% curl 'localhost:9200/_cat/indices?format=json&pretty'[  {    "pri.store.size": "650b",    "health": "yellow",    "status": "open",    "index": "twitter",    "pri": "5",    "rep": "1",    "docs.count": "0",    "docs.deleted": "0",    "store.size": "650b"  }]--------------------------------------------------// NOTCONSOLECurrently supported formats (for the `?format=` parameter):- text (default)- json- smile- yaml- cborAlternatively you can set the "Accept" HTTP header to the appropriate media format.All formats above are supported, the GET parameter takes precedence over the header.For example:[source,sh]--------------------------------------------------% curl '192.168.56.10:9200/_cat/indices?pretty' -H "Accept: application/json"[  {    "pri.store.size": "650b",    "health": "yellow",    "status": "open",    "index": "twitter",    "pri": "5",    "rep": "1",    "docs.count": "0",    "docs.deleted": "0",    "store.size": "650b"  }]--------------------------------------------------// NOTCONSOLE[float][[sort]]=== SortEach of the commands accepts a query string parameter `s` which sorts the table bythe columns specified as the parameter value. Columns are specified either by name or byalias, and are provided as a comma separated string. By default, sorting is done inascending fashion. Appending `:desc` to a column will invert the ordering forthat column. `:asc` is also accepted but exhibits the same behavior as the default sort order.For example, with a sort string `s=column1,column2:desc,column3`, the table will besorted in ascending order by column1, in descending order by column2, and in ascendingorder by column3.[source,sh]--------------------------------------------------GET _cat/templates?v&s=order:desc,index_patterns--------------------------------------------------//CONSOLEreturns:[source,sh]--------------------------------------------------name                  index_patterns order versionpizza_pepperoni       [*pepperoni*]  2sushi_california_roll [*avocado*]    1     1pizza_hawaiian        [*pineapples*] 1----------------------------------------------------include::cat/alias.asciidoc[]include::cat/allocation.asciidoc[]include::cat/count.asciidoc[]include::cat/fielddata.asciidoc[]include::cat/health.asciidoc[]include::cat/indices.asciidoc[]include::cat/master.asciidoc[]include::cat/nodeattrs.asciidoc[]include::cat/nodes.asciidoc[]include::cat/pending_tasks.asciidoc[]include::cat/plugins.asciidoc[]include::cat/recovery.asciidoc[]include::cat/repositories.asciidoc[]include::cat/thread_pool.asciidoc[]include::cat/shards.asciidoc[]include::cat/segments.asciidoc[]include::cat/snapshots.asciidoc[]include::cat/templates.asciidoc[]
 |