相关疑难解决方法(0)

Lucene 4分页

我正在使用Lucene 4.2并且正在实现结果分页.

IndexSearcher.searchAfter提供了一种实现"下一页"功能的有效方法,但实现"上一页"甚至"转到页面"功能的最佳方法是什么?没有IndexSearcher.searchBefore例子.

我正在考虑确定给定页面大小的页面总数,并保持一个ScoreDoc[]数组来跟踪ScoreDoc每个页面的"后" (该数组将在结果被分页时填充).这将允许我使用"最近" ScoreDoc的使用IndexSearcher.searchAfter(或空在最坏的情况下).

这有意义吗?有更好的方法吗?

java lucene pagination

6
推荐指数
2
解决办法
3904
查看次数

分页Lucene.Net搜索结果asp.net

我想为lucene.net搜索结果做分页.当我从索引中获取数据时,我需要在每个页面中只获取10条记录.所以我搜索lucene.net分页技巧,我得到了一个我不清楚的答案.这是...请看.

Hits hits = searcher.search(query);
int offset = page * recordsPerPage;
int count = Math.min(hits.length() - offset, recordsPerPage);
for (int i = 0; i < count; ++i) {
    Document doc = hits.doc(offset + i);

}

TopDocs topDocs = indexSearcher.Search(query, null, 150);
for(int i=100, i<min(topDocs.totalHits,150); i++) {
Document doc = indexSearcher.doc(topDocs.scoreDocs[i]);

// Do something with the doc
}
Run Code Online (Sandbox Code Playgroud)

我只需要知道有没有更好的技术.请讨论.谢谢

从这里我的更新开始

我用来搜索索引的方式不同.在获取您的代码后,我试图在我的代码中使用但是收到错误.请查看我的代码并以这样的方式转换它,结果我可以使用您的分页逻辑.

这是我的代码

            int PageIndex=0;
            int PageSize=10;
            searcher = new IndexSearcher(_directory, false);
            Query qry = MultiFieldQueryParser.Parse(Version.LUCENE_29, multiWordPhrase, fieldList, occurs.ToArray(), new StandardAnalyzer(Version.LUCENE_29));
            TopDocs …
Run Code Online (Sandbox Code Playgroud)

c# lucene.net

5
推荐指数
1
解决办法
5279
查看次数

标签 统计

c# ×1

java ×1

lucene ×1

lucene.net ×1

pagination ×1