機能を説明してください:
新しいsearch_after
パラメータは、膨大な結果セットをページングするのに最適です。 リレー接続仕様を使用してElasticSearchをGraphQLAPIに接続しようとしていますが、現在のセットの前後に追加の結果があるかどうかを判断できないという問題が発生しています。 セットのバックエンドで必要以上の結果を取得し、セットの前に1つの結果に対して別のクエリを実行する(順序を逆にする)ことで、今のところ回避できます。 しかし、これは不格好なようです。 フォワードレコードとバックワードレコードの存在を判断する方法、または全体的な結果内の現在のセットの位置を判断する方法を取得することは可能ですか? これは多くのユースケースの要件であることがわかります。
実装方法を考えると、比較がsearch_after
で提供されるソート値よりも少ないという事実のために、無視するドキュメントの数を理論的に数えることができます。 ただし、これは、検索APIへの応答を更新してこの情報を含め、Luceneコレクターを変更してこのオフセットを公開し、より一般的にはこの情報をコレクターから検索応答まで伝播することを意味します。これは簡単な変更ではありません。 この問題がどれだけの関心を集めているかを測定するために、この問題をしばらく開いたままにしておくことをお勧めします。
cc @ elastic / es-search-aggs
この問題にはあまり関心がなく、多くの変更が必要であり、クライアントサイズからの回避策があるため、この問題を閉じます。
最も参考になるコメント
実装方法を考えると、比較が
search_after
で提供されるソート値よりも少ないという事実のために、無視するドキュメントの数を理論的に数えることができます。 ただし、これは、検索APIへの応答を更新してこの情報を含め、Luceneコレクターを変更してこのオフセットを公開し、より一般的にはこの情報をコレクターから検索応答まで伝播することを意味します。これは簡単な変更ではありません。 この問題がどれだけの関心を集めているかを測定するために、この問題をしばらく開いたままにしておくことをお勧めします。