我有一堆文件的lucene.net索引。我用MVC请求拉这些并以JSON的形式返回客户端。我想从我想要的索引开始只返回前N个文档。我需要这样做以最小化服务器和客户端之间的数据流。 我需要的是:
1)首次查询 - 获取前20个文档
2)第二个查询 - 从20开始获得前20个文档 - 将是21 - 41
3)....等等
Lucene允许我设置顶级项目。但它只计算从索引开始的那些。是否存在为此设置起始索引的内置可能性?可能是我在lucene.net中遗漏的一些高级索引器或其他东西..
谢谢!
答案 0 :(得分:5)
请看一下这篇解释pagination in lucene的博客。
关键在于:
int start = 20; int pageSize = 20;
Query query = qp.parse(searchTerm);
TopDocs hits = searcher.search(query, maxNumberOfResults);
for (int i = start; i < start + pageSize && i < hits.Length(); i++) {
int docId = hits.scoreDocs[i].doc;
}