OpenSearch/docs/reference/cat/indices.asciidoc

104 lines
2.8 KiB
Plaintext
Raw Normal View History

2013-11-14 20:14:39 -05:00
[[cat-indices]]
=== cat indices API
++++
<titleabbrev>cat indices</titleabbrev>
++++
2013-11-14 20:14:39 -05:00
Returns high-level information about indices in a cluster.
2013-11-14 20:14:39 -05:00
[[cat-indices-api-request]]
==== {api-request-title}
`GET /_cat/indices/<index>`
2013-11-14 20:14:39 -05:00
[[cat-indices-api-desc]]
==== {api-description-title}
Use the cat indices API to get the following information for each index in a
cluster:
* Shard count
* Document count
* Deleted document count
* Primary store size
* Total store size of all shards, including shard replicas
These metrics are retrieved directly from
https://lucene.apache.org/core/[Lucene], which {es} uses internally to power
indexing and search. As a result, all document counts include hidden
<<nested,nested>> documents.
To get an accurate count of {es} documents, use the <<cat-count,cat count>> or
<<search-count,count>> APIs.
2013-11-14 20:14:39 -05:00
[[cat-indices-api-path-params]]
==== {api-path-parms-title}
2013-11-14 20:14:39 -05:00
include::{docdir}/rest-api/common-parms.asciidoc[tag=index]
[[cat-indices-api-query-params]]
==== {api-query-parms-title}
2013-11-14 20:14:39 -05:00
include::{docdir}/rest-api/common-parms.asciidoc[tag=bytes]
2013-11-14 20:14:39 -05:00
include::{docdir}/rest-api/common-parms.asciidoc[tag=http-format]
include::{docdir}/rest-api/common-parms.asciidoc[tag=cat-h]
`health`::
+
--
(Optional, string) Health status used to limit returned indices. Valid values
are:
* `green`
* `yellow`
* `red`
By default, the response includes indices of any health status.
--
include::{docdir}/rest-api/common-parms.asciidoc[tag=help]
include::{docdir}/rest-api/common-parms.asciidoc[tag=include-unloaded-segments]
include::{docdir}/rest-api/common-parms.asciidoc[tag=local]
include::{docdir}/rest-api/common-parms.asciidoc[tag=master-timeout]
[[pri-flag]]
`pri` (primary shards)::
(Optional, boolean) If `true`, the response only includes information from
primary shards. Defaults to `false`.
include::{docdir}/rest-api/common-parms.asciidoc[tag=cat-s]
include::{docdir}/rest-api/common-parms.asciidoc[tag=cat-v]
[[cat-indices-api-example]]
==== {api-examples-title}
[[examples]]
[source,js]
--------------------------------------------------
GET /_cat/indices/twi*?v&s=index
--------------------------------------------------
// CONSOLE
// TEST[setup:huge_twitter]
// TEST[s/^/PUT twitter2\n{"settings": {"number_of_replicas": 0}}\n/]
The API returns the following response:
Enforce that responses in docs are valid json (#26249) All of the snippets in our docs marked with `// TESTRESPONSE` are checked against the response from Elasticsearch but, due to the way they are implemented they are actually parsed as YAML instead of JSON. Luckilly, all valid JSON is valid YAML! Unfurtunately that means that invalid JSON has snuck into the exmples! This adds a step during the build to parse them as JSON and fail the build if they don't parse. But no! It isn't quite that simple. The displayed text of some of these responses looks like: ``` { ... "aggregations": { "range": { "buckets": [ { "to": 1.4436576E12, "to_as_string": "10-2015", "doc_count": 7, "key": "*-10-2015" }, { "from": 1.4436576E12, "from_as_string": "10-2015", "doc_count": 0, "key": "10-2015-*" } ] } } } ``` Note the `...` which isn't valid json but we like it anyway and want it in the output. We use substitution rules to convert the `...` into the response we expect. That yields a response that looks like: ``` { "took": $body.took,"timed_out": false,"_shards": $body._shards,"hits": $body.hits, "aggregations": { "range": { "buckets": [ { "to": 1.4436576E12, "to_as_string": "10-2015", "doc_count": 7, "key": "*-10-2015" }, { "from": 1.4436576E12, "from_as_string": "10-2015", "doc_count": 0, "key": "10-2015-*" } ] } } } ``` That is what the tests consume but it isn't valid JSON! Oh no! We don't want to go update all the substitution rules because that'd be huge and, ultimately, wouldn't buy much. So we quote the `$body.took` bits before parsing the JSON. Note the responses that we use for the `_cat` APIs are all converted into regexes and there is no expectation that they are valid JSON. Closes #26233
2017-08-17 09:02:10 -04:00
[source,txt]
--------------------------------------------------
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open twitter u8FNjxh8Rfy_awN11oDKYQ 1 1 1200 0 88.1kb 88.1kb
green open twitter2 nYFWZEO7TUiOjLQXBaYJpA 1 0 0 0 260b 260b
--------------------------------------------------
// TESTRESPONSE[s/\d+(\.\d+)?[tgmk]?b/\\d+(\\.\\d+)?[tgmk]?b/]
// TESTRESPONSE[s/u8FNjxh8Rfy_awN11oDKYQ|nYFWZEO7TUiOjLQXBaYJpA/.+/ non_json]