【发布时间】:2011-05-05 14:52:03
【问题描述】:
Lucene 鼓励在多个线程中重用 IndexWriter。
考虑到两个线程可能有对 IndexWriter 的引用,如果线程 A 调用关闭写入器,线程 B 将留下一个无用的写入器。但据我了解,lucene 不知何故知道另一个线程使用同一个作者并推迟了它的关闭。
真的是这样吗? lucene 如何跟踪另一个线程使用 writer?
编辑 从答案来看,关闭 IndexWriter 是不正确的。但这带来了一个新问题:如果一个 IndexWriter 保持打开状态,基本上会阻止另一个 JVM 对该索引的访问(例如,在集群的情况下,或许多应用程序之间的共享索引)。
【问题讨论】: