OpenSearch/docs/reference/search/search-shards.asciidoc

150 lines
3.5 KiB
Plaintext
Raw Normal View History

[[search-shards]]
== Search Shards API
The search shards api returns the indices and shards that a search request would
be executed against. This can give useful feedback for working out issues or
planning optimizations with routing and shard preferences.
The `index` and `type` parameters may be single values, or comma-separated.
[float]
=== Usage
Full example:
[source,js]
--------------------------------------------------
curl -XGET 'localhost:9200/twitter/_search_shards'
--------------------------------------------------
This will yield the following result:
[source,js]
--------------------------------------------------
{
"nodes": {
"JklnKbD7Tyqi9TP3_Q_tBg": {
"name": "Rl'nnd",
"transport_address": "inet[/192.168.1.113:9300]"
}
},
"shards": [
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 3,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 4,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 0,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 2,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 1,
"state": "STARTED"
}
]
]
}
--------------------------------------------------
And specifying the same request, this time with a routing value:
[source,js]
--------------------------------------------------
curl -XGET 'localhost:9200/twitter/_search_shards?routing=foo,baz'
--------------------------------------------------
This will yield the following result:
[source,js]
--------------------------------------------------
{
"nodes": {
"JklnKbD7Tyqi9TP3_Q_tBg": {
"name": "Rl'nnd",
"transport_address": "inet[/192.168.1.113:9300]"
}
},
"shards": [
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 2,
"state": "STARTED"
}
],
[
{
"index": "twitter",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"primary": true,
"relocating_node": null,
"shard": 4,
"state": "STARTED"
}
]
]
}
--------------------------------------------------
This time the search will only be executed against two of the shards, because
routing values have been specified.
[float]
=== All parameters:
[horizontal]
`routing`::
A comma-separated list of routing values to take into account when
determining which shards a request would be executed against.
`preference`::
Controls a `preference` of which shard replicas to execute the search
request on. By default, the operation is randomized between the shard
replicas. See the link:search-request-preference.html[preference]
documentation for a list of all acceptable values.
`local`::
A boolean value whether to read the cluster state locally in order to
determine where shards are allocated instead of using the Master node's
cluster state.