[[indices-segments]]
=== Index segments API
++++
Index segments
++++
Returns low-level information about the https://lucene.apache.org/core/[Lucene]
segments in index shards. For data streams, the API returns information about
the stream's backing indices.
[source,console]
----
GET /my-index-000001/_segments
----
// TEST[setup:my_index]
[[index-segments-api-request]]
==== {api-request-title}
`GET //_segments`
`GET /_segments`
[[index-segments-api-prereqs]]
==== {api-prereq-title}
* If the {es} {security-features} are enabled, you must have the `monitor` or
`manage` <> for the target data stream,
index, or alias.
[[index-segments-api-path-params]]
==== {api-path-parms-title}
``::
(Optional, string) Comma-separated list of data streams, indices, and aliases
used to limit the request. Supports wildcards (`*`). To target all data streams
and indices, omit this parameter or use `*` or `_all`.
[[index-segments-api-query-params]]
==== {api-query-parms-title}
``::
(Optional, Boolean)
If `true`, the list of vector formats used by fields in each segment is
included in the output `attributes`. Defaults to `false`.
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=allow-no-indices]
+
Defaults to `true`.
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=expand-wildcards]
+
Defaults to `open`.
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=index-ignore-unavailable]
[[index-segments-api-response-body]]
==== {api-response-body-title}
``::
(String)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=segment]
`generation`::
(Integer)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=generation]
`num_docs`::
(Integer)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=docs-count]
`deleted_docs`::
(Integer)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=docs-deleted]
`size_in_bytes`::
(Integer)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=segment-size]
`committed`::
(Boolean)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=committed]
`search`::
(Boolean)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=segment-search]
`version`::
(String)
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=segment-version]
`compound`::
(Boolean)
If `true`, Lucene merged all files from the segment
into a single file to save file descriptors.
`attributes`::
(Object)
Contains information about (i) whether high compression was enabled, (ii) per-field vector formats.
[[index-segments-api-example]]
==== {api-examples-title}
===== Get segment information for a specific data stream or index
[source,console]
--------------------------------------------------
GET /test/_segments
--------------------------------------------------
// TEST[s/^/PUT test\n{"settings":{"number_of_shards":1, "number_of_replicas": 0}}\nPOST test\/_doc\?refresh\n{"test": "test"}\n/]
===== Get segment information for several data streams and indices
[source,console]
--------------------------------------------------
GET /test1,test2/_segments
--------------------------------------------------
// TEST[s/^/PUT test1\nPUT test2\n/]
===== Get segment information for all data streams and indices in a cluster
[source,console]
--------------------------------------------------
GET /_segments
--------------------------------------------------
// TEST[s/^/PUT test\n{"settings":{"number_of_shards":1, "number_of_replicas": 0}}\nPOST test\/_doc\?refresh\n{"test": "test"}\n/]
The API returns the following response:
[source,console-response]
--------------------------------------------------
{
"_shards": ...
"indices": {
"test": {
"shards": {
"0": [
{
"routing": {
"state": "STARTED",
"primary": true,
"node": "zDC_RorJQCao9xf9pg3Fvw"
},
"num_committed_segments": 0,
"num_search_segments": 1,
"segments": {
"_0": {
"generation": 0,
"num_docs": 1,
"deleted_docs": 0,
"size_in_bytes": 3800,
"committed": false,
"search": true,
"version": "7.0.0",
"compound": true,
"attributes": {
}
}
}
}
]
}
}
}
}
--------------------------------------------------
// TESTRESPONSE[s/"_shards": \.\.\./"_shards": $body._shards,/]
// TESTRESPONSE[s/"node": "zDC_RorJQCao9xf9pg3Fvw"/"node": $body.$_path/]
// TESTRESPONSE[s/"attributes": \{[^}]*\}/"attributes": $body.$_path/]
// TESTRESPONSE[s/: (\-)?[0-9]+/: $body.$_path/]
// TESTRESPONSE[s/7\.0\.0/$body.$_path/]