删除Lucene.net中的所有索引

删除Lucene.net中的所有索引,lucene.net,Lucene.net,我想删除以前创建的所有索引。我正在使用Lucene.net 我尝试了以下方法: Term term = new Term(); //empty because I want to delete all the indices IndexReader rdr = IndexReader.Open(_directory); rdr.DeleteDocuments(term); rdr.Close(); 但我有一个错误。知道怎么做吗?删除索引的最佳方法是删除文件系统目录。但是,如果不想重新生成索引

我想删除以前创建的所有索引。我正在使用
Lucene.net

我尝试了以下方法:

Term term = new Term(); //empty because I want to delete all the indices
IndexReader rdr = IndexReader.Open(_directory);

rdr.DeleteDocuments(term);
rdr.Close();

但我有一个错误。知道怎么做吗?

删除索引的最佳方法是删除文件系统目录。但是,如果不想重新生成索引,最简单的方法是打开一个新的indexwriter,其中create参数为true。它将启动一个新索引,删除现有索引的内容

正如Jokin所说,最简单的方法是删除目录中的所有文件。i、 e

DirectoryInfo directoryInfo = new DirectoryInfo(@"IndexLocation");
Parallel.ForEach(directoryInfo.GetFiles(), file => {
            file.Delete();
        });
从:

publicstaticindexreader打开(目录)

专家:返回一个读/写IndexReader,使用自定义IndexDeletePolicy读取给定目录中的索引。注意:从3.0开始,这将返回只读IndexReader。如果索引已损坏,则引发CorruptIndexException。如果存在低级IO错误,则引发IOException

我想你应该试试

IndexReader rdr = IndexReader.Open(_directory, true);

虽然这条线索很旧,但我认为最好给出答案。。可能对其他人有用。 IndexWriter的deleteAll()方法可用于删除所有索引的文档