如何使用compositeId路由器和已知散列范围重新创建SolrCloud分片?

时间:2016-06-08 09:46:12

标签: solr sharding solrcloud

我们有一个SolrCloud设置,包含20个分片,每个分片只有1个副本,在8个服务器上提供。

服务器出现故障后,我们剩下16个分片,这意味着某些compositeId散列范围不是由任何内核托管的。不知何故,服务器再次出现后,分片/核心没有回来。我可以在/ live_nodes中看到服务器。

但一切都不错:集合中的数据是易失性的,TTS为30分钟,我们有一个故障转移,只要“添加”操作失败就会尝试新的随机compositeId。

我的问题是:是否可以重新创建丢失的分片,还是必须从头开始删除和创建集合?

我知道缺少哪些哈希范围,但CREATESHARD API调用不支持使用'compositeId'路由器的分片。我不能使用SPLITSHARD,因为它只划分原始分片的哈希值。

(我们使用Solr 5.4.0并且在6.1发布之前无法升级,参考SOLR-8940

1 个答案:

答案 0 :(得分:0)

所以,我在solr-user邮件列表中asked the same questionanswer I got建议使用zkNavigator并编辑state.json,使用正确的参数添加缺少的分片。之后需要进行ADDREPLICA API调用。

我还没有尝试过,但如果问题再次发生,我会这样做。