大きなレスポンスのページネーション

前のセクションの例を使用して、カーソルフィールドを返すことで次のページに進むことができます。CSV、TSV、TXT形式の場合、カーソルはCursor HTTPヘッダーに返されます。

Python

  1. resp = client.sql.query(
  2. format="json",
  3. cursor="sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8=",
  4. )
  5. print(resp)

Js

  1. const response = await client.sql.query({
  2. format: "json",
  3. cursor:
  4. "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8=",
  5. });
  6. console.log(response);

コンソール

  1. POST /_sql?format=json
  2. {
  3. "cursor": "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8="
  4. }

次のようになります:

コンソール-結果

  1. {
  2. "rows" : [
  3. ["Dan Simmons", "Hyperion", 482, "1989-05-26T00:00:00.000Z"],
  4. ["Iain M. Banks", "Consider Phlebas", 471, "1987-04-23T00:00:00.000Z"],
  5. ["Neal Stephenson", "Snow Crash", 470, "1992-06-01T00:00:00.000Z"],
  6. ["Frank Herbert", "God Emperor of Dune", 454, "1981-05-28T00:00:00.000Z"],
  7. ["Frank Herbert", "Children of Dune", 408, "1976-04-21T00:00:00.000Z"]
  8. ],
  9. "cursor" : "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWODRMaXBUaVlRN21iTlRyWHZWYUdrdw==:BAFmBmF1dGhvcgFmBG5hbWUBZgpwYWdlX2NvdW50AWYMcmVsZWFzZV9kYXRl9f///w8="
  10. }
  1. 結果に`````cursor`````が返されない場合、最後のページに到達したことになります。Elasticsearchの[スクロール](238327401f76c2ac.md#scroll-search-results)のように、SQLはカーソルをサポートするためにElasticsearchに状態を保持することがあります。スクロールとは異なり、最後のページを受け取ることは、Elasticsearchの状態がクリアされることを保証するのに十分です。
  2. 状態を早くクリアするには、[カーソルクリアAPI](/read/elasticsearch-8-15/a81d6232d594dbba.md)を使用してください:
  3. #### Python
  4. ``````python
  5. resp = client.sql.clear_cursor(
  6. cursor="sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8=",
  7. )
  8. print(resp)
  9. `

Js

  1. const response = await client.sql.clearCursor({
  2. cursor:
  3. "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8=",
  4. });
  5. console.log(response);

コンソール

  1. POST /_sql/close
  2. {
  3. "cursor": "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8="
  4. }

次のように返されます:

コンソール-結果

  1. {
  2. "succeeded" : true
  3. }