我要检查文件是否已存在于我的Lucene.NET(4.0)指数。 我曾尝试使用下面的代码从试过这个职位 。
IndexReader reader;
Term indexTerm = new Term("filepath", "C:\\my\\path");
TermDocs docs = reader.TermDocs(indexTerm);
if (docs.Next())
{
continue;
}
但是,我得到一个错误,告诉我说, reader
是未分配。 我有这个Google搜索了很多,无法找到Lucene.NET 4什么应该是一个相当简单的任务工作的答案。
编辑 : IndexReader
是一个抽象类。 在本文档中,它说叫IndexReader.Open()
与Lucene.Net.Store.Directory
作为参数,但它本身是抽象的。 代码样本,我得到使用它,如果它不是。 此外,在我链接到用户的帖子说的代码的第一段工作。
EDIT2:我现在已经编译代码。 这里是:
bool exists = false;
IndexReader reader = IndexReader.Open(Lucene.Net.Store.FSDirectory.Open(lucenePath), false);
Term term = new Term("filepath", "\\myFile.PDF");
TermDocs docs = reader.TermDocs(term);
if (docs.Next())
{
exists = true;
}
该文件myFile.PDF
肯定存在,但它总是回来为假。 当我看到docs
的调试,它的Doc
和Freq
特性声明,他们“扔类型的异常‘ System.NullReferenceException
’。