2017-03-01 66 views
0

我已像碎片分配过滤器:删除碎片分配过滤

PUT _cluster/settings 
{ 
    "transient" : { 
    "cluster.routing.allocation.exclude._name" : "node-1" 
    } 
} 

如何删除或禁用这样的设置?我尝试与包括,但是我有两个过滤器设置 - 包括和排除。我可以设置类似"cluster.routing.allocation.exclude._name" : ""

但是,是否也可以设置类似于:include all节点?

回答

2

你试过

PUT _cluster/settings 
{ 
    "transient" : { 
    "cluster.routing.allocation.exclude._name" : "" 
    } 
} 

音哑,但我认为这是你如何在elasticsearch取消设置的东西...

0

要重置包括过滤器,包括所有的节点,你必须使用两种设置:

PUT _cluster/settings 
{ 
    "transient" : { 
    "cluster.routing.allocation.include._name" : "" 
    } 
} 

PUT _cluster/settings 
{ 
    "transient" : { 
    "cluster.routing.allocation.exclude._name" : "" 
    } 
} 
3

对于在Elasticsearch 5.x上运行的群集,可以通过null值重置设置。如在issue中所述,这是针对cluster level settings记录的,但不适用于索引级别设置。

所以,你可以这样做:

PUT _cluster/settings 
{ 
    "transient" : { 
     "cluster.routing.allocation.exclude._name" : null 
    } 
} 

而且也:

PUT test-index/_settings 
{ 
    "index": { 
    "routing": { 
     "allocation": { 
     "include": { 
      "box_type": null 
     }, 
     "exclude": { 
      "box_type": null 
     }, 
     "require": { 
      "box_type": null 
     }, 
     "total_shards_per_node": "2" 
     } 
    } 
    } 
}