Lucene.net按订单搜索范围 - 分页

时间:2011-07-13 14:06:36

标签: lucene.net

我有一堆文件的lucene.net索引。我用MVC请求拉这些并以JSON的形式返回客户端。我想从我想要的索引开始只返回前N个文档。我需要这样做以最小化服务器和客户端之间的数据流。 我需要的是:

1)首次查询 - 获取前20个文档

2)第二个查询 - 从20开始获得前20个文档 - 将是21 - 41

3)....等等

Lucene允许我设置顶级项目。但它只计算从索引开始的那些。是否存在为此设置起始索引的内置可能性?可能是我在lucene.net中遗漏的一些高级索引器或其他东西..

谢谢!

1 个答案:

答案 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;  
}