我有两个包含相同内容的 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 路线:我们已经设法将一个测试实例重新定位为一个额外的活动实例,我们可以暂时将其放入农场,同时我们将另外两个依次取出来重新-指数。但是,我仍然有兴趣听到更好的方法来做到这一点!