【问题标题】:Solr distribution update between shards分片之间的 Solr 分布更新
【发布时间】:2015-10-15 08:25:54
【问题描述】:

如何在分片之间分配更新索引? 我们通过用 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 个分片。

【问题讨论】:

    标签: solr lucene solrcloud


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨。谢谢回答。我们有 LB Haproxy,ip 10.10.10.10,节点之间的 Haproxy 平衡。但是当他选择'sh2'或其他节点时,他开始将所有文档插入一个分片中,也许我们可以通过solr方案或配置进行分发?我们使用implict 模式
    • 当您创建收藏集时,您为router.field 选择了哪个字段?该字段中有哪些值?
    • 我只输入router.name=implicitrouter.field - 没有输入action=CREATE&name=coll1&numShards=2&replicationFactor=2&maxShardsPerNode=2&router.name=implicit&collection.configName=coll1&shards=sh1,sh2,sh3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2015-04-12
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多