2015-10-15 56 views

回答

0

文档被插入的分片由文档ID上计算的散列值确定。有关详情,请参阅here

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

如果您想对发行版有更多的控制权,您也可以使用implicit模式here。然后,您指定的字段内的值决定您在哪个分片中注册文档。

+0

嗨。 thx回答。我们有LB Haproxy,ip 10.10.10.10,节点之间的Haproxy平衡。但是当他选择'sh2'或其他节点时,他会开始在一个分片中插入所有文档,也许我们可以通过solr scheme或configs进行分发?我们使用'implict'模式 –

+0

当你创建你的集合时,你选择了什么字段作为'router.field'?这个字段中的哪些值? – siom

+0

我只输入'router.name = implicit','router.field' - nothing 'action = CREATE&name = coll1&numShards = 2&replicationFactor = 2&maxShardsPerNode = 2&router.name = implicit&collection.configName = coll1&shards = sh1,sh2,sh3' –