Preference

控制要对其执行搜索请求的分片副本的首选项。默认情况下,操作在分片副本之间是随机化的。

首选项是一个查询字符串参数,可以设置为:

| _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"
        }
    }
}