我找不到一个简单的是或否答案! 我知道我可以并行发送多个读取但是我可以在单独的进程/线程更新时查询索引吗?
答案 0 :(得分:15)
我使用Lucene已经有一段时间了。但是,假设您正在讨论Java版本,FAQ可以这样说:
是。但是,IndexReader仅在打开时的“时间点”搜索索引。在重新打开IndexReader之前,对索引的任何更新(添加或删除的文档)都不可见。因此,您的应用程序必须定期重新打开其IndexReaders以查看最新更新。 IndexReader.isCurrent()方法允许您测试自IndexReader打开以来索引是否发生了任何更新。
答案 1 :(得分:2)
另请参阅Lucene的近实时功能,该功能可以在对索引进行更改(添加,删除,更新)时快速转换,以便能够搜索这些更改。例如,使用近实时您可以对索引进行更改,然后每隔几秒钟重新打开阅读器。