如何从Lucene.Net的索引文件中读取行

Ash*_*ule 3 .net c# asp.net lucene lucene.net

我正在使用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;
        }
Run Code Online (Sandbox Code Playgroud)

但是它返回每个术语的列表,在这里,我无法按每行(记录)汇总数据。

让我知道是否有按行读取文件的方式,或者我需要更新当前使用的Lucene的版本。

还请提供指向Lucene.net更好文档网站的任何链接。

L.B*_*L.B 5

您可以document直接从索引中读取所有记录/行(使用Lucene术语),而无需搜索

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();
}
Run Code Online (Sandbox Code Playgroud)

PS:v2.0.5非常旧。尝试最新最好的Lucene.Net