我无法决定在solr cloud中创建集合的两种方法,我应该选择哪种方式。
我想要 - 我应该能够动态地添加/创建分片到现有的集合,以便我可以在索引增长时扩展集群。因为这只能在通过隐式路由创建的集合中实现,所以我打算使用它。
我只是想知道我是否有收集(通过隐式路由创建),然后它将如何在查询时间方面执行?与通过solr默认路由创建的集合相比,它是否相同?表现方面有任何缺点吗?
答案 0 :(得分:1)
Solr查询时间由最慢的分片响应时间设置。
当你使用隐式路由时,你负责每个分片中的文档数量,如果你的路由策略很差,你最终会得到不平衡的分片,这会使执行速度变慢。
当您使用Solr默认策略时,Solr根据docId.hash()%(#shards)决定在何处发送文档,通常这些分片是平衡的,您将获得更好的性能。
两种策略都很好取决于您的用例,如果需要每月/每天添加分片,我会选择隐式路由以防多租户(每个租户分片)。通常我使用默认路由并通过将节点数乘以x 2来扩展(我知道这是一个代价高昂的解决方案)。
我在以下JIRA SOLR-5025中建议了另一个横向扩展选项,欢迎您添加评论或投票:https://issues.apache.org/jira/browse/SOLR-5025