标签: solr lucene solrcloud
如何在分片之间分发更新索引? 我们通过用Java编写的API solr更新集合。
我有一个集合(coll1)和3个分片(sh1,sh2,sh3)。
coll1
sh1
sh2
sh3
我打电话的时候 http://10.10.10.10:8983/solr/coll1/update?q=many_files_and_texts&wt=json&indent=true, 此 / update 只会插入sh1,而不是全部3个分片。
答案 0 :(得分:0)
插入文档的分片由在文档ID上计算的哈希值确定。有关详细信息,请参阅here。
如果针对托管shard1的集群的第一个节点发出请求,但是文档将根据其文档ID上的哈希值插入到shard2中,那么第一个节点将在内部将请求转发给第二个节点。你不需要做任何事情。因此,有意义的是不在第一个节点上插入所有文档,而是将它们分布在集群中的节点上(例如,使用负载均衡器)。
如果您想要更好地控制分发,您还可以使用here所述的implicit模式。然后,您指定的字段中的值将确定您在文档中注册的分片。
implicit