ドキュメントを検索するとき、最初の 10 個を取得してビューに渡します。ユーザーがリストの最後までスクロールすると、次の 10 個の要素が表示されます。
表示されたドキュメントの最後のドキュメント ID を知っているので、次の 10 を取得する必要があります。基本的には、オフセットを 10 にしてまったく同じ検索を実行しますが、同じクエリで検索できる方がはるかに優れています。最後に取得したドキュメントのドキュメント ID を取得し、その ID を持つドキュメントの後に一致するドキュメントを取得します。
それはelasticsearchで可能ですか?
===更新
現在説明されているだけでは十分に明確ではないように思われるため、私の問題をもう少し指摘したいと思います。そのために残念。
ケース:
一種のフィードがあり、フィードは毎秒成長します。ユーザーがフィードにアクセスすると、最新の 10 エントリが取得され、下にスクロールすると次の 10 エントリが取得されます。
フィードは毎秒成長しているため、通常のオフセット/制限 (elasticsearch の from / size) ではこの問題を解決できません。最初のリクエスト (最初の 10 エントリ) 間の時間に応じて、既に表示されているエントリまたは完全に新しいエントリを表示します。そして次回作のリクエスト。
すでに表示されているエントリの後に次の 10 個の要素を取得する要求は、最後に表示されたエントリの ID をバックエンドに提供します。バックエンドは、この特定のエントリより前のすべてのエントリを無視することを認識しています。
現時点では、これをコードで処理しています。Elasticsearch に一致するすべてのエントリを含むリストを要求し、それを繰り返します。このようにして、必要なことをすべて実行し (驚くことではありません)、全体の必要なチャンクを抽出できます。
私の質問は次のとおりです。elasticsearch にこの問題のソリューションが組み込まれていますか。途中で問題を解決するのは最速ではないからです。