我正在使用Lunece.net 2.0.5版本。 我想在ASP.NET Web应用程序中以网格(表)格式打开并显示索引文件中的所有记录,并为该网格中的每个单元格提供编辑选项。 但我不知道如何从索引文件中读取每一行。
我使用了以下代码 -
private List<String> GetIndexTerms(string indexFolder)
{
List<String> termlist = new List<string>();
IndexReader reader = IndexReader.Open(indexFolder, false);
TermEnum terms = reader.Terms();
while (terms.Next())
{
Term term = terms.Term();
String termText = term.Text();
int frequency = reader.DocFreq(term);
termlist.Add(termText);
}
reader.Close();
return termlist;
}
但它返回每个术语的列表,在这里我无法按行(记录)聚合数据。
让我知道是否有方法每行读取文件或我需要更新我当前使用的Lucene版本。
另外,请提供Lucene.net更好的文档网站的任何链接。
答案 0 :(得分:4)
您可以直接从索引中读取Lucene术语中的所有记录/行(document
)而无需搜索
var reader = IndexReader.Open(dir);
for (int i = 0; i < reader.MaxDoc(); i++)
{
if (reader.IsDeleted(i)) continue;
Document d = reader.Document(i);
var fieldValuePairs = d.GetFields()
.Select(f => new {
Name = f.Name(),
Value = f.StringValue() })
.ToArray();
}
PS:v2.0.5很老了。尝试最新&amp;最大的Lucene.Net