2013-03-13 64 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); 

}