1

有时需要从头开始重新构建 lucene-index。由于我不希望索引在构建时几个小时不完整,因此我使用单独的指南针实例来构建新索引并随后在文件系统中替换它。在此之前,所有指南针实例都使用 停止SearchEngineIndexManager#stop(),然后使用 重新启动它们SearchEngineIndexManager#start()

但是,有时,索引似乎在此操作期间损坏。

当 SearchEngineIndexManger 停止时,替换文件系统中的索引是否不安全?如果我需要对文件系统中的 lucene 索引进行操作,是否还有其他必要的预防措施需要考虑?

4

2 回答 2

0

将您的服务器置于只读模式然后在第二个lucene 实例(具有自己的索引)上启动重新索引怎么样。完成索引后,关闭所有服务器并将新索引提供给主 lucene 服务器。

于 2011-10-21T09:57:14.947 回答
0

我设法通过sleep在停止后和重新启动IndexManager. 可能是一个丑陋的解决方案,但对我有用。

可以肯定的是,我还在重新启动后添加了对 SearchEngineIndexManager#clearCache() 的调用。

于 2012-03-21T16:27:22.093 回答