lucene:索引后重新打开indexreader

rem*_*emy 6 lucene

当我的搜索服务器开始运行时,它会立即为所有查询加载所有索引.但是,即使重建索引,它仍然使用旧索引.所以我认为我应该告诉搜索器的indexReader在服务器重建索引后重新打开索引,但是如何实现呢?也许使用生产者 - 消费者模式?虽然我可以使用indexReader.isCurrent()来检查索引是否已经更改,但我必须经常检查这个搜索或在某个时间段.有没有更有效和实时的方式?

jpo*_*ntz 6

执行所描述的方便的方法是使用Lucene的辅助类SearcherManager.如果您有兴趣进行近实时搜索,您可能也对NRTManager感兴趣.

Mike McCandless的博客上有一篇关于这两个课程的非常好的博客文章.