7

我有两个包含相同内容的 Jackrabbit 实例。重建 Lucene 索引很慢,需要 30 多个小时,而且集群中所需的停机时间是有风险的。是否可以只重新索引一个 Jackrabbit,然后将 Lucene 索引从该实例复制到另一个?

天真地复制工作区目录下的 Lucene 索引文件是行不通的。问题似乎是内容是由映射到 UUID 的文档编号索引的,该 UUID 映射到索引节点的 JCR 路径,但是对于 Jackrabbit 实例之间的给定路径,这些 UUID 不稳定。(两者实际上都是由 CQ 作者实例复制填充的 Day CQ 发布者实例。)

我已经设法在 /jcr:system/jcr:versionStorage/ 下的存储库中找到 UUID 到路径的映射,但是我看不到在存储库之间复制它以及 Lucene 索引的简单方法。然后我在文件中的任何地方都找不到 UUID->document ID 映射 - 这也是 Lucene 索引的一部分吗?

谢谢你的帮助。我倾向于单独重新索引第二个实例并接受停机时间,但任何降低风险的想法或重新索引集群所用的时间都值得赞赏!


最后,我们将采用 re-index-them-both 路线:我们已经设法将一个测试实例重新定位为一个额外的活动实例,我们可以暂时将其放入农场,同时我们将另外两个依次取出来重新-指数。但是,我仍然有兴趣听到更好的方法来做到这一点!

4

1 回答 1

2

老实说,这似乎是一个可怕的想法。我不确定是否有任何方法可以保证您拥有相同的基础数据,即使具有相同的内容和硬件配置。

如果您的性能数据与我们的相似,则复制整个存储库的时间少于重新索引所需的时间。您是否考虑过仅重新索引一个存储库,进行备份/复制,然后将备份/复制配置为您的第二个实例?

于 2012-08-09T03:11:51.060 回答