Javaで検索エンジンを開発しました。サーバー側でJavaサーブレットを使用しました。問題は、クエリごとに多くの結果が表示されることです。各結果は文字列として表されます。サーバー側のページネーションを実現するには?
3 に答える
ページネーションの一般的な考え方は、スキップ/制限パラメーターを使用することです。クライアント側とサーバー側のクエリにスキップ/制限パラメーターを設定する必要があります。このパラメーターをチェックして、期待される結果を返す必要があります。
パラメータの説明は次のとおりです。
skip : skips the number of results and return the others
limit : return the given number of results.
例 : クエリが 25 の結果を返し、それをページ分割したいとします。次に、最初のページで、クライアント側とサーバー側で skip=0, limit=10 を設定する必要があります。このパラメーターをチェックして、0 の結果をスキップし、そのうちの 10 個を返す必要があります。次に、最初のページの 0 ~ 9 の結果を返します。
2 ページ目では、skip=10、limit=10 でクエリを送信する必要があり、結果は 10 ~ 19 の間になります。
最後のページでは、クエリは skip=20, limit=10 になり、20 ~ 25 の結果が返されます。
これは、ページネーションがどのように機能するかの一般的な考え方です。ページネーションを使用するには、自分で実装する必要があります。
実装は、キャッシュを使用しているテクノロジー、使用しているDB、新しいテクノロジーを使用するためのオープン度によって異なります。
サーブレットのみを使用したいとします...rownum機能を使用して、jspをクリックしたページ番号に基づいて結果を表示できます。
新しいテクノロジーを使用することにオープンな場合は、springdata、jparespositiryhttp ://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-seven-pagination/を使用してください。
Spring MCV を使用したことがある場合は、次のリンクを確認してください: http://blog.fawnanddoug.com/2012/05/pagination-with-spring-mvc-spring-data.html
ほとんどの Java Server Framework は、同様のものを提供するはずです。