分片之间的Solr分发更新

时间:2015-10-15 08:25:55

标签: solr lucene solrcloud

如何在分片之间分发更新索引? 我们通过用Java编写的API solr更新集合。

实施例

我有一个集合(coll1)和3个分片(sh1sh2sh3)。

我打电话的时候 http://10.10.10.10:8983/solr/coll1/update?q=many_files_and_texts&wt=json&indent=true, 此 / update 只会插入sh1,而不是全部3个分片。

1 个答案:

答案 0 :(得分:0)

插入文档的分片由在文档ID上计算的哈希值确定。有关详细信息,请参阅here

如果针对托管shard1的集群的第一个节点发出请求,但是文档将根据其文档ID上的哈希值插入到shard2中,那么第一个节点将在内部将请求转发给第二个节点。你不需要做任何事情。因此,有意义的是不在第一个节点上插入所有文档,而是将它们分布在集群中的节点上(例如,使用负载均衡器)。

如果您想要更好地控制分发,您还可以使用here所述的implicit模式。然后,您指定的字段中的值将确定您在文档中注册的分片。