mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
c62d4b7b0f
This commit clarifies the preference docs regarding the explanation of how operations are routed by default. In particular, the previous use of "shard replicas" was confusing as it could imply an operation would only be routed to replicas by default. Relates #23794
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
[[search-request-preference]]
|
|
=== Preference
|
|
|
|
Controls a `preference` of which shard copies on which to execute the
|
|
search. By default, the operation is randomized among the available shard copies.
|
|
|
|
The `preference` is a query string parameter which can be set to:
|
|
|
|
[horizontal]
|
|
`_primary`::
|
|
The operation will go and be executed only on the primary
|
|
shards.
|
|
|
|
`_primary_first`::
|
|
The operation will go and be executed on the primary
|
|
shard, and if not available (failover), will execute on other shards.
|
|
|
|
`_replica`::
|
|
The operation will go and be executed only on a replica shard.
|
|
|
|
`_replica_first`::
|
|
The operation will go and be executed only on a replica shard, and if
|
|
not available (failover), will execute on other shards.
|
|
|
|
`_local`::
|
|
The operation will prefer to be executed on a local
|
|
allocated shard if possible.
|
|
|
|
`_prefer_nodes:abc,xyz`::
|
|
Prefers execution on the nodes with the provided
|
|
node ids (`abc` or `xyz` in this case) if applicable.
|
|
|
|
`_shards:2,3`::
|
|
Restricts the operation to the specified shards. (`2`
|
|
and `3` in this case). This preference can be combined with other
|
|
preferences but it has to appear first: `_shards:2,3|_primary`
|
|
|
|
`_only_nodes`::
|
|
Restricts the operation to nodes specified in <<cluster,node specification>>
|
|
|
|
Custom (string) value::
|
|
A custom value will be used to guarantee that
|
|
the same shards will be used for the same custom value. This can help
|
|
with "jumping values" when hitting different shards in different refresh
|
|
states. A sample value can be something like the web session id, or the
|
|
user name.
|
|
|
|
For instance, use the user's session ID to ensure consistent ordering of results
|
|
for the user:
|
|
|
|
[source,js]
|
|
------------------------------------------------
|
|
GET /_search?preference=xyzabc123
|
|
{
|
|
"query": {
|
|
"match": {
|
|
"title": "elasticsearch"
|
|
}
|
|
}
|
|
}
|
|
------------------------------------------------
|
|
// CONSOLE
|
|
|