我正在使用
Asp.net 3.5和Lucene.Net的.Net应用程序.我在asp.net数据网格中显示Lucene.Net提供的搜索结果.我需要为这个aspx页面实现分页(每页10个记录).
如何使用Lucene.Net完成这项工作?
解决方法
这是一种构建一个与Lucene.Net匹配的特定页面的简单列表的方法.这不是ASP.Net具体的.
int first = 0,last = 9; // TODO: Set first and last to correct values according to page number and size Searcher searcher = new IndexSearcher(YourIndexFolder); Query query = BuildQuery(); // TODO: Implement BuildQuery Hits hits = searcher.Search(query); List<Document> results = new List<Document>(); for (int i = first; i <= last && i < hits.Length(); i++) results.Add(hits.Doc(i)); // results now contains a page of documents matching the query
基本上,Hits集合非常轻巧.获得此列表的成本是最小的.您只需通过调用hits.Doc(i)实例化所需的文档来构建您的页面.