有时需要从头开始重新构建lucene-index。由于我不希望索引在构建的几个小时内不完整,我使用单独的罗盘实例来构建新索引并在之后将其替换为文件系统。
在此之前,使用SearchEngineIndexManager#stop()
停止所有指南针实例,然后使用SearchEngineIndexManager#start()
重新启动它们
但是,在此操作过程中,索引似乎时刻都会被破坏。
当SearchEngineIndexManger停止时,替换文件系统中的索引是否安全? 如果我需要在文件系统中对lucene索引进行操作,是否还需要考虑其他必要的预防措施?
答案 0 :(得分:0)
如何将服务器置于只读模式,然后在第二个 lucene实例(具有自己的索引)上启动reindex。完成索引后,关闭所有服务器并将新索引提供给主lucene服务器。
答案 1 :(得分:0)
我设法通过在停止之后和重新启动sleep
之前添加5秒IndexManager
来解决问题。可能是一个丑陋的解决方案,但对我有用。
可以肯定的是,我在重新启动后还添加了对SearchEngineIndexManager#clearCache()的调用。