我们有基于Lucene的本地搜索服务。我前段时间遇到的一个特定问题是IndexWriter上有待处理的更改数量。如果挂起的更改计数器为零,则无需提交索引,重新打开IndexReaderIndexSearcher等。另外,我们有一些与IndexReader.commit()调用链接的应用程序级逻辑,如果提交点没有实际更改,最好不要调用它。

我可以访问调用方法IndexReader.updateDocument()IndexReader.remove()的所有地方,因此我只需编写自己的未决更改计数器即可。但是我很感兴趣,也许Lucene API本身已经存在一个? API检查无法提供有关该主题的足够信息。

最佳答案

请参见IndexReader.isCurrent()

07-26 09:30