0

ユーザーが Web サイトにアップロードしたすべての写真を検索する Web ページ フォームがあります。問題は、ページに 21 枚の写真しか表示されていないにもかかわらず、Lucene 検索が現在、検索条件を満たすすべての写真を取得していることです。これにより、重大なパフォーマンスの問題が発生しています。パフォーマンスを向上させるために、取得する写真の数を 21 に制限することはできますか?

例えば ​​(Category: New) を使って検索を特定のカテゴリに制限するのと同じように、ヒット数を制限する同様の方法はありますか?

4

1 に答える 1

0

これが私がしていることです: 検索メソッドには、パラメーターとして結果の数があります。pageSize*page を渡します。したがって、ページ 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);

}

于 2013-03-13T17:45:15.683 に答える