【发布时间】:2018-07-05 21:44:11
【问题描述】:
我正在尝试在我的应用程序中实现按日期分片。我知道在 Solr 云中,我可以使用 CompositeId 路由器实现到特定分片的路由。
但这种方法会导致预先配置的分片数量(或编写分片拆分逻辑 - 不太难,但很麻烦)。
我想知道是否可以将自定义路由器编写为 Java 类并将其提供给 Solr?只要时间合适(例如:新月份),自定义路由器就会简单地创建新分片并将新文档直接路由到它。
这可能吗?或者有任何资源如何实现这一目标? (我查看了文档并没有提及...)
【问题讨论】:
-
您这样做的最终目标是什么?为什么每个日期都有一个新的 shard 很重要?正在使用的解决方案是为每个日期创建一个集合,然后使用集合别名将这些集合组合在一起。它将允许您在集合老化时删除它们,每天使用自己的复制和分片策略(当文档数量增加时等)将它们分布在多个服务器上。
-
我们的查询通常按日期排序。我们通常应该只命中一两个最近的分区。因此,目标是能够提示 solr 首先搜索最新数据,甚至不尝试转到包含 X 个月以前的数据的索引。