合并集合分为多个分片

时间:2014-02-06 09:17:10

标签: solr solr4 solrcloud


设置简要概述:

5 x SolrCloud(Solr 4.6.1)节点实例(单独的机器) 该设置旨在存储最近48小时的webapp日志(非常强烈......〜3MB /秒)

“logs”集合有5个分片(每个节点实例一个) 一个日志代表一个“日志”集合的文档


如果我继续将日志文档存储到此“日志”集合中,则分片上的核心开始变得非常大,并且CPU图表显示实例花费越来越多的时间等待磁盘I / O.

所以,我的想法是每15分钟创建一个新的集合,并将其命名为“logs-201402051400”,其中分片分布在5个实例中。文档编写器将在创建后立即开始写入新集合。有时我会得到这样的集合列表:

...
日志-201402051400
日志-201402051415
日志-201402051430
日志-201402051445
日志-201402051500
...

由于在某段时间内SolrCloud中将有最多192个集合(~1000个核心)。搜索性能似乎应该大幅降低。

所以,我想将当前没有写入的集合合并到一个大集合中(但仍然分为5个实例)。我已经找到了如何合并核心的信息,但是如何合并集合呢?

1 个答案:

答案 0 :(得分:1)

这可能不是您查询的完整答案 - 但有些事情告诉我您需要重做收藏品的设计。

这是使用具有多个碎片的单个集合与多个集合之间的经典争论。

我认为您应该设置一个单一集合 - 然后使用Solr Cloud的动态分片功能(隐式路由器)添加新分片(对于较新的15分钟间隔)/删除旧分片(对于较旧的15分钟间隔)。

管理单个集合意味着您将拥有一个终点,这将使您免于查询多个集合的复杂性。

请看一下此链接中的一个答案,其中讨论了在SolrCloud中使用隐式路由器进行动态分片。

How to add shards dynamically to collection in solr?