メニュー
Amazon CloudSearch
開発者ガイド (API Version 2013-01-01)

Amazon CloudSearch の結果のページ分割

デフォルトで、Amazon CloudSearch は指定されたソート順に従って上位 10 件のヒット項目を返します。結果セットで返されるヒット項目の数を制御するには、size パラメータを使用します。

特定のオフセットから始まる次のヒットセットを取得するには、start パラメータを使用します。結果セットはゼロ起点で、最初の項目のインデックスは 0 であることに注意してください。最初の 10,000 件のヒット項目は、size および start パラメータを使用して取得できます。10,000 件を超えるヒット項目をページ分割するには、cursor パラメータを使用します。詳細については、「10,000 件を超えるディープページ分割」を参照してください。

たとえば、search?q=wolverine は、wolverine を含むインデックス 0 から始まる最初の 10 件のヒット項目を返します。次の例は start パラメータを 10 に設定して次の 10 件を取得します。

Copy
search?q=wolverine&start=10

1 回で 25 件取得する場合は、size パラメータを 25 に設定します。最初のヒットセットを取得する場合、start パラメータを設定する必要はありません。

Copy
search?q=wolverine&size=25

それ以降のリクエストでは、start パラメータを使用して必要なヒットセットを取得します。たとえば、25 件単位で 3 番目のヒットセットを取得するには、次のように指定します:

Copy
search?q=wolverine&size=25&start=50

Amazon CloudSearch で 10,000 件を超えるディープページ分割

sizestart を使用して結果をページ分割して参照する方法は、結果の最初の数ページのみにアクセスする場合であればうまくいきます。しかし、数千件単位のヒット項目をページ分割する必要がある場合は、カーソルを使用する方が効率的です。10,000 件を超えるヒット項目をページ分割するには、cursor を使用する必要があります(start および size パラメータを使用してアクセスできるのは最初の 10,000 件のみです)。

カーソルを使用して結果をページ分割するには、最初の検索リクエストで cursor=initial を指定し、size パラメータを使って取得する件数を指定します。Amazon CloudSearch はレスポンスでカーソル値を返します。それを使用して、次のヒットセットを取得できます。カーソルはヒットセットを逐次的に返します。ただし、必要であれば、カーソルを使用してディープページのランダムアクセスをシミュレートすることもできます。注意点として、カーソルは、最初のリクエストからあまり時間がたっていないうちに結果セットをページ分割することを想定しています。途中でインデックスが更新された場合、古いカーソルを使用すると古い結果が返されることがあります。

重要

ドキュメントスコア (_score) によってソートされた結果セットを、カーソルを使用してページ分割すると、リクエストの合間にインデックスが更新された場合に結果が不整合になることがあります。ドメインのレプリケーション数が 1 より大きい場合にも同様の現象が発生することがあります。これは、更新が結果整合性方式でドメイン内のインスタンス間に適用されるためです。問題になる場合は、スコアによるソートを避けてください。sort オプションを使用して特定のフィールドでソートするか、または q の代わりに fq を使用して検索条件を指定できます。(ドキュメントスコアはフィルタークエリでは計算されません)

たとえば、次のリクエストは cursor の値を initial に設定し、size パラメータを 100 に設定して、最初のヒットセットを取得します。

Copy
search?q=-star&cursor=initial&size=100

次のヒットセット用のカーソルは、レスポンスに含まれています。

Copy
{ "status": { "rid": "z67+3L0oHgo6swY=", "time-ms": 7 }, "hits": { "found": 1649, "start": 0, "cursor": "Vb-HSS4YQW9JSVFKeFpvQ2wwZERBek16SXpOems9Aw", "hit": [ { "id": "tt0397892" }, . . . { "id": "tt0332379" } ] } }

次のリクエストでは、cursor パラメータに、返されたカーソル値を指定します。

Copy
search?q=-star&cursor=Vb-HSS4YQW9JSVFKeFpvQ2wwZERBek16SXpOems9Aw&size=100