2013-03-13 20 views
0

我有一个网页表单,可以搜索用户上传到网站的所有照片。问题是,即使我们只在页面上显示21张照片,Lucene搜索目前正在检索符合搜索条件的所有照片。这造成了严重的性能问题。为了提高性能,是否可以将检索的照片数量限制为21张?Lucene:如何限制点击次数?

以同样的方式,我们可以通过使用eg(Category:New)将搜索限制到特定类别,是否有类似的方法来限制匹配数量?

+0

Lucene的'Searcher'具有允许限制搜索结果相关的API。但是如果没有看到你的代码,我们不能建议究竟需要修复什么。 – mindas 2013-03-13 16:37:41

回答

0

这就是我所做的: 搜索方法有多个结果作为参数。我通过pageSize *页面。 因此,对于第1页,我只获得pageSize文档。

然后我只加载文档(使用searcher.doc())为我需要的页面。

TopDocs hits = searcher.search(lucene_query, pageSize*(page)); 

ScoreDoc[] scoreDocs = hits.scoreDocs; 

int j = startIndex; 
int rem = 0; 

while (j < scoreDocs.length && (endIndex==0 || j<endIndex)) { 

    ScoreDoc sd = scoreDocs[j]; 
    Document d = searcher.doc(sd.doc); 

}