【发布时间】:2011-08-22 02:48:42
【问题描述】:
我们正在寻找一些关于在 Solr 中系统地重新索引不断增长的文档语料库(现在数千万,一年内数亿)而不降低当前运行的索引的建议。需要定期重新索引,因为:
- 新功能介绍围绕 搜索现有的语料库 需要额外的架构字段 我们不能总是预料到 前进
- 语料库跨多个索引 碎片。当它长到一定程度时 门槛,我们需要创造更多 分片和重新平衡文档 均匀地分布在所有人身上(其中 SolrCloud 似乎还没有 支持)。
当前索引接收非常频繁的更新和添加,需要在几分钟内可供搜索。因此,离线批量重新索引语料库的方法实际上并不奏效,因为当批处理完成时,新文档将可用。
我们目前正在研究的方法是:
- 创建一个新的分片集群并 在旧的时候批量重新索引 集群仍然可用 搜索。没有的新文件 发送重新索引批次的一部分 旧集群和新集群 簇。准备切换时,点 新集群的负载均衡器。
- 使用 CoreAdmin:每次生成一个新核心 分片并发送重新索引的批次 到新的核心。新的文件 不是重新索引批次的一部分 被发送到旧核心和 新的核心。准备切换时, 使用 CoreAdmin 动态交换 核心。
如果人们能够确认或在其中一种或所有这些方法中找出漏洞,我们将不胜感激。一个比另一个更合适吗?还是我们完全关闭了?提前谢谢你。
【问题讨论】:
-
作为一个拥有数百万文档索引的人,我考虑过一种类似于您的“使用 CoreAdmin:”选项的方法。我认为你在正确的轨道上。
-
谢谢弗兰克。很高兴知道我还没有完全离开。
-
是的...CoreAdmin 是一种非常理智的方法。
标签: indexing clustered-index solr bigdata