如何在ApacheSolr云模式下将文档插入特定分片

如何在ApacheSolr云模式下将文档插入特定分片,solr,sharding,Solr,Sharding,有没有一种方法可以将文档添加到特定的碎片中 例如,类型A的文档总是插入到shard1中,类型B的文档总是插入到shard2中 我已经尝试使用自定义路由器,但它不能保证不同的前缀将路由到不同的碎片 另外,我在Solr5上使用云模式。警告:我正在使用SolrNet访问SolrCloud,但它还没有与ZooKeeper集成。对于Java客户机,这可能要容易得多 不管我读到了什么,关于CompositeId路由器,我都无法让它工作。@jay帮助我找到了一种使用“隐式”路由实现这一点的方法。如果您这样创建

有没有一种方法可以将文档添加到特定的碎片中

例如,类型A的文档总是插入到shard1中,类型B的文档总是插入到shard2中

我已经尝试使用自定义路由器,但它不能保证不同的前缀将路由到不同的碎片


另外,我在Solr5上使用云模式。

警告:我正在使用SolrNet访问SolrCloud,但它还没有与ZooKeeper集成。对于Java客户机,这可能要容易得多

不管我读到了什么,关于
CompositeId路由器
,我都无法让它工作。@jay帮助我找到了一种使用“隐式”路由实现这一点的方法。如果您这样创建收藏(省略
numShards
参数):

然后在
schema.xml
中添加一个名为“shard”(匹配
router.field
参数)的字段,只需将
shard
字段添加到要索引的文档中并指定shard名称,即可对特定的shard进行索引。在查询时,您可以指定要搜索的
shard
——更多(我可以简单地指定没有特定地址的shard名称)


我还没有在生产中对此进行测试,但已经使用多个VirtualBox实例进行了验证,其中包括ZooKeeper、HAProxy和几个Solr节点,它的性能完全符合我的预期。欢迎更正和评论。

您是否找到过此问题的答案?我在云模式下使用Solr 5.1.0也遇到了同样的问题。@LandonC发现我生活在随机碎片和多重冗余中。。。如果你找到了一个解决方案,让我知道:-)在其他人的帮助下,我有了我认为是一个解决方案。我知道,它在测试场景中工作。我将在下面发布。
http://localhost:8983/solr/admin/collections?action=CREATE&name=myCol&maxShardsPerNode=2&router.name=implicit&shards=shard1,shard2&router.field=shard