Solrを検索エンジンとして使用したいと思っています。カーソルマーカーで基本ページングと深いページングの違いを理解しようとしています。Solrカーソルマーカーとページ番号
私の知る限り理解し、あなたが基本的なページネーションを使用して、ページごとに20回の結果とページ1001を照会する場合は、この現象が発生します:
- Solrには、最初の1000 * 20のマッチング結果
- に表示があります次の20件の1001ページの結果
誰かが次のページをクリックしたときに問題が発生すると思います。 Solrは最初に1001 * 20の結果を見つけ、その後に望ましい結果を表示します。
大量の深刻なページングの適切な例は見ていません。小さい数字でしかないので、私はこれについては分かりません。誰かがそれを明確にすることはできますか?
次の例は正しいですか?
.../query?q=id:book*&sort=pubyear_i+desc,id+asc&fl=title_t,pubyear_i&rows=1&cursorMark=*
私に「nextCursorMark」を与えてこの:「AoJcfCVib29rMg ==」
今私はnextCursorMarkを持っていることを私は行くと私の目的のページを見つけることができます。 ここで手動でページを表示する必要がありますか?私が欲しい特定のページを検索するループを作成する必要がありますか?
または、20000行の最初のクエリを取得し、nextCursorMarkを取得して、それを20行しかない別のクエリで使用する必要がありますか?
nextCursorMarkを取得するために20000行のクエリを実行するのはちょっと奇妙です。それを行う正しい方法ですか?
たとえば、10ページあり、1ページから5ページ目をクリックしたい場合はどうすればいいですか?手動で各ページに移動する必要がありますか?
編集:私はこれを読んでいる
:How to manage "paging" with Solr?
作業例を見つけることを試みたが、できませんでした。
リンクありがとうございます。私はそのドキュメントを通して多くを読んだことがありますが、なんらかの理由でその記事を見つけることができませんでした。たとえば、ページネーションを作成する場合は、すべての結果を最初に調べ、すべてのcursorMarkを取得してページ番号にバインドする必要がありますか?私が1000ページを持っているならば、私はページネーションに1000個のボタンを表示しませんが、最後のページか最後の2-3ページへのリンクがほしいと思うかもしれません。すべての結果を確認し、各ページボタンにカーソルをバインドする最良のソリューションですか? –
いいえ、考え方は、人が結果セットをページングしているときにcursorMarkを使用することです。ドキュメントの総数を1回取得してページング情報を生成することができます(このクエリでは5000個のドキュメントが利用可能です)。x個のドキュメントをスキップするには、伝統的なページ付け方法が有効です(cursorMark行数が多い場合は、その結果セットに改ページしてください)。 – MatsLindh