Lucene IndexWriter AlreadySet Исключение
Я пытаюсь создать IndexWriter и записать в индекс Lucene. Вот мой код:
public class Indexer {
public static Analyzer _analyzer = new StandardAnalyzer(Lucene.Net.Util.LuceneVersion.LUCENE_48);
private void WriteToIndex() {
var config = new IndexWriterConfig(Lucene.Net.Util.LuceneVersion.LUCENE_48, _analyzer).SetUseCompoundFile(false);
using (IndexWriter indexWriter = new IndexWriter(LuceneDirectory, config)) <-- This throws an error!
{
// ....
}
}
}
Но я продолжаю получать исключение при попытке создать IndexWriter:
Exception thrown: 'Lucene.Net.Util.SetOnce`1.AlreadySetException' in Lucene.Net.dll
Additional information: The object cannot be set twice!
Что я делаю неправильно? Код компилируется отлично. Я использую Lucene.NET, но я предполагаю, что это должно относиться и к Java.
1 ответ
Решение
Вы получаете это исключение, потому что вы повторно используете IndexWriterConfig
, который не предназначен для совместного использования IndexWriter
экземпляров. Вместо этого создайте новый IndexWriterConfig, и он должен работать нормально.