java将Lucene索引移动到另一台服务器
我正在将我的Lucene索引移动到离线状态,以便由JMS队列的使用者完成。我让一切都正常运转。它正确地创建了索引,并且我能够将索引文件重新同步到新框中。问题是让Lucene使用新索引的最佳方法是什么?其他人如何重新初始化他们的IndexWriter以使用新的索引文件? 谢谢
你可以在下面搜索框中键入要查询的问题!
我正在将我的Lucene索引移动到离线状态,以便由JMS队列的使用者完成。我让一切都正常运转。它正确地创建了索引,并且我能够将索引文件重新同步到新框中。问题是让Lucene使用新索引的最佳方法是什么?其他人如何重新初始化他们的IndexWriter以使用新的索引文件? 谢谢
# 1 楼答案
对于我之后的其他人,以下是我所做的
目标是让我的JMS消费者生成我的lucene索引,然后让我的每个服务器在索引完成后提取新索引。 以下是我采取的步骤:
!/垃圾箱/垃圾箱
时间=
date +%s
rsync-avtomcat@consumer1.*。com:/home/tomcat/lucene/home/tomcat/lucene
echo$TIME
mv-f/home/tomcat/lucene/lucene/home/tomcat/lucene/$TIME
如上所示,它使用时间戳作为目录名,因此新索引将显示在名为
我不确定这是否是线程安全的。我想,如果有人试图在我切换时正确搜索,他们会得到一个错误,但我目前没有太多的搜索,使其成为可能的情况。然而,随着我们的流量增长,它肯定会成为一个地方,事情可能会打破。如果有人知道更好的方法,请提供建议
以下是代码: