编辑

使用 分配操作 时,此设置是可选的;使用 集群路由操作 时,此设置是必需的。

对于 分配操作,此设置的值应与集群中一个或多个节点上的节点设置相对应。

例如,您可能已在您的 elasticsearch.yml 文件中为一个或多个节点设置了

node.tag: myvalue

在本例中,要匹配分配,请将值设置为 myvalue。此外,如果您对 key 使用了特殊属性名称 _ip_name_id_host,则值可以分别匹配节点 IP 地址、名称、ID 或主机名之一。

要删除路由分配,此设置的值应留空,或者甚至不将 value 设置作为选项包含在内。

例如,您可能已在您的 elasticsearch.yml 文件中为一个或多个节点设置了

PUT test/_settings
{
  "index.routing.allocation.exclude.size": "small"
}

以防止索引 test 在具有 node.tag: small 的节点上分配分片。要删除此分片路由分配设置,您可以使用类似于以下内容的操作文件

---
  actions:
    1:
      action: allocation
      description: ->
        Unset 'index.routing.allocation.exclude.size' for index 'test' by
        passing an empty value.
      options:
        key: size
        value: ...
        allocation_type: exclude
      filters:
      - filtertype: pattern
        kind: regex
        value: '^test$'

对于 集群路由操作,此设置的允许值取决于 routing_type 的值。

action: cluster_routing
description: "Apply routing rules to the entire cluster"
options:
  routing_type: ...
  value: ...
  setting: enable
  wait_for_completion: True
  max_wait: 300
  wait_interval: 10

routing_typeallocationrebalance 时,允许的值为 allprimariesnone(字符串,而不是 NoneType)。

如果 routing_typeallocation,则它也可以是 new_primaries。如果 routing_typerebalance,则该值也可以是 replicas

没有默认值。此设置必须由用户设置,否则将引发异常,执行将停止。