150 lines
3.5 KiB
Plaintext
150 lines
3.5 KiB
Plaintext
[[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.
|