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, и он должен работать нормально.

Другие вопросы по тегам