Lucene IndexReader如何在多线程环境中使用?

时间:2014-12-29 07:06:46

标签: multithreading solr elasticsearch lucene

如果我想从同一个IndexReader实例读取,可能是单个实例,从多个线程读取会对性能产生什么影响?是否会出现“读锁定”或任何可能会影响多线程可能性的事情?< / p>

在多线程环境中使用相同的IndexReader是否有最佳实践?

1 个答案:

答案 0 :(得分:2)

根据documentation

IndexReader instances are completely thread safe, meaning multiple threads can call any 
of its methods, concurrently. If your application requires external synchronization,
you should not synchronize on the IndexReader instance; use your own (non-Lucene)
objects instead.

但是您要考虑的另一件事是,如果索引重定向器由多个线程共享,并且在该过程中索引会更新,则在您创建新的索引重定向器实例之前,更新的索引不会反映出来。