控制要对其执行搜索请求的分片副本的首选项。默认情况下,操作在分片副本之间是随机化的。
首选项是一个查询字符串参数,可以设置为:
| _primary
| 操作将继续并只在主分片上执行。 |
| _primary_first
| 操作将在主分片上执行,如果不可用(故障转移),将在其他分片上执行。 |
| _replica
| 该操作将只在副本分片上执行。 |
| _replica_first
| 操作将移动并仅在副本分片上执行,如果不可用(故障转移),则将在其他分片上执行。 |
| _local
| 如果可能,操作将优选在本地分配的分片上执行。 |
| _prefer_nodes:abc,xyz
| 在适用的情况下,在具有提供的节点标识(本例中为 abc 或 xyz )的节点上优先执行。 |
| _shards:2,3
| 将操作限制为指定的分片。(在这种情况下为 2 和 3 )。此首选项可以与其他首选项组合,但必须首先显示:_shards:2,3 | _primary
|
| _only_nodes
| 将操作限制在节点说明中指定的节点 https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html |
| Custom (string) value | 自定义值将用于保证相同的自定义值使用相同的分片。当在不同的刷新状态中匹配不同的分片时,这可以帮助“跳跃值”。示例值可以是 Web 会话 ID 或用户名。 |
例如,使用用户的会话 ID 来确保用户的结果的一致排序:
GET /_search?preference=xyzabc123
{
"query": {
"match": {
"title": "elasticsearch"
}
}
}