2017-02-08 10 views
1

私はインデクサーを作成するためにlucene 6.3.0を使用しています。あるフォルダからコレクションを読み取り、別のフォルダへのインデックスを作成します。これはうまくいきますが、私はマルチスレッドをしたい、つまり、2つのコレクション(c1とc2)が与えられ、2つのスレッドを実行し、それぞれが1つのコレクションと1つのインデックスフォルダで実行される。コレクションc1をフォルダi1に、スレッド2をコレクションc2のインデックスをフォルダi2に作成します。luceneによるマルチスレッド化IndexWriter

私はそれを管理するためのThreadPoolクラスを作成しましたが、私は取得しています:

例外スレッドで "プール-1-スレッド-2" org.apache.lucene.util.SetOnce $ AlreadySetException:オブジェクトは を2回設定できません!

それは

IndexWriterライター=新しいIndexWriter(ディレクトリ、indexWriterConfig)から来ています。

ただし、インデックスは作成されます。

なぜこの例外が発生し、どうやったらそれを避けるのですか?

答えて

1

IndexWriterConfigの同じインスタンスを複数のIndexWriterに再利用しています。それは許可されていないので、各IndexWriterの新しいインスタンスを生成する必要があります。

+0

あなたが正しいです、私はそれを変更し、それは正常に動作します。 – CodeSniffer

関連する問題