jackrabbit - 在 Jackrabbit 存储库之间复制 Lucene 索引

标签 jackrabbit aem crx

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

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

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

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

最后,我们将重新索引它们两者的路线:我们设法将测试实例重新用作额外的实时实例,我们可以暂时将其放入农场,同时我们将另外两个取出来重新-指数。但是,我仍然有兴趣听到更好的方法来做到这一点!

最佳答案

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

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

关于jackrabbit - 在 Jackrabbit 存储库之间复制 Lucene 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309154/

相关文章:

java - 如何设置 apache jackrabbit 以使用 MySQL DB 来存储元数据并使用文件系统来存储与该元数据关联的文件

java - 将元数据存储到 Jackrabbit 存储库中

java - Jackrabbit WebDAV 同步示例?

java - 将自定义节点类型添加到 Apache Sling WebApp

aem - tracker.js 直接点击调度程序 URL?怎么解决呢?

adobe - 如何在 AEM 6.3 的 Touch UI 中更改 parsys 放置区域文本?

jackrabbit - JCR checkin / checkout 操作

google-chrome - 无法从此网站添加应用程序、扩展程序和脚本

java - 无法通过 Dispatcher 访问 AEM/etc.clientlibs

command-line - 如何以编程方式创建chrome crx文件(最好在Java中)?