原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-preference.html

    译文链接 : http://www.apache.wiki/pages/editpage.action?pageId=4883104

    贡献者 : ping

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

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

    | _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 来确保用户的结果的一致排序:

    1. GET /_search?preference=xyzabc123
    2. {
    3. "query": {
    4. "match": {
    5. "title": "elasticsearch"
    6. }
    7. }
    8. }