我的Java EE应用程序使用Lucene 4.在Lucene索引中,我有1000万人的全名。当我使用搜索时,Lucene会返回不同的结果。相同的应用程序在Windows上的开发环境,AIX上的测试环境中工作正常,但在生产服务器上,Lucene搜索返回的记录要少得多。相同的查询在开发中返回800结果,在生产时返回20个结果。我们将在生产中尝试AIX和Red Hat,但仍然没有运气。
我将Lucene索引文件从生产复制到开发环境,并使用相同的应用程序搜索相同的查询:在我的环境中一切正常,有800个结果。我启动应用程序调试,将Lucene查询复制为文本,并在我的环境中使用此查询与Luke - 有800个结果。生产负担很高,我会尝试加载开发环境,但Lucene工作稳定,总是返回800.
在哪里可以找到问题的根源?
答案 0 :(得分:0)
在更新安装期间,系统管理员已在服务器配置中为Lucene索引指定了相对路径,然后启动应用服务器。首次启动后,我们的应用程序在数据库中对数据进行完全索引,然后每两小时增加一次索引。我们的服务器每晚都会通过chron任务重新启动,因此在自动重启后, Lucene索引的相对路径会发生变化。下一个增量索引在不同文件夹中创建新索引文件,并在那里保存更改。当我向系统管理员询问索引文件时,他们给我第一个创建的大索引,我会对它们进行分析,但实际上,服务器使用不同的索引文件。
所以,答案是:需要指定Lucene索引文件夹的完整路径,而不是相对的。