我正在使用 lucene 6.3.0 创建索引器。它从一个文件夹读取集合并创建另一个文件夹的索引。这工作正常,但我想进行多线程处理,我的意思是,给定 2 个集合(c1 和 c2),运行 2 个线程,每个线程都有一个集合和一个索引文件夹,这样,线程一将为集合 c1 到文件夹 i1,线程 2 将为集合 c2 创建索引到文件夹 i2。
我创建了一个 ThreadPool 类来管理它,但我得到了:
Exception in thread "pool-1-thread-2" org.apache.lucene.util.SetOnce$AlreadySetException: The object cannot be set twice!
来自
IndexWriter writer = new IndexWriter(directory, indexWriterConfig);
但是,无论如何都会创建索引。
为什么我会遇到此异常以及如何避免出现此异常?
最佳答案
您正在多个 IndexWriter 中重复使用相同的 IndexWriterConfig
实例。这是不允许的,您需要为每个 IndexWriter 生成一个新实例。
关于java - 使用 lucene IndexWriter 进行多线程处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108992/