2013-03-13 3 views
0

사용자가 웹 사이트에 업로드 한 모든 사진을 검색하는 웹 페이지 양식이 있습니다. 문제는 Lucene 검색이 현재 페이지에 21 개의 사진 만 표시하고 있지만 검색 기준을 충족하는 모든 사진을 검색하고 있다는 것입니다. 이로 인해 심각한 성능 문제가 발생합니다. 성능을 향상시키기 위해 검색된 사진의 수를 21 개로 제한 할 수 있습니까?Lucene : 조회수를 제한하는 방법은 무엇입니까?

eg (Category : New)를 사용하여 검색을 특정 범주로 제한하는 것과 같은 방법으로 히트 수를 제한하는 유사한 방법이 있습니까?

+0

루씬'Searcher' 검색 결과를 제한 허용 관련 API를 가지고있다. 그러나 코드를 보지 않고서는 정확히 무엇이 고칠 필요가 있는지 조언 할 수는 없습니다. – mindas

답변

0

내가하는 일 : 검색 방법의 결과가 매개 변수로 포함되어 있습니다. pageSize * 페이지를 전달합니다. 페이지 1의 경우 페이지 크기의 문서 만 표시됩니다.

그런 다음 필요한 페이지에만 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); 

}

관련 문제