Lucene IndexWriter AlreadySet异常

时间:2017-04-04 15:51:25

标签: lucene indexwriter

我正在尝试创建一个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 个答案:

答案 0 :(得分:1)

您收到此异常是因为您正在重用IndexWriterConfig,而IndexWriter实例之间并不打算共享该ngModelChange。相反,生成一个新的IndexWriterConfig,它应该可以正常工作。