在亞馬遜雲端搜尋中對結果進行分頁 - Amazon CloudSearch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在亞馬遜雲端搜尋中對結果進行分頁

預設情況下,Amazon CloudSearch 會按照指定的排序順序傳回前 10 名的命中項目。若要控制結果集傳回的命中數,請使用 size 參數。

如欲取得從特定位移算起的下一組命中項目,您可以使用 start 參數。請注意,結果集的基底為零,即第一項結果的索引位置為 0。使用 sizestart 參數共可取得前 10,000 個命中項目。若要翻頁瀏覽超過 10,000 個命中項目,請使用 cursor 參數。如需更多詳細資訊,請參閱 深入翻頁超過 10,000 個命中項目

例如,search?q=wolverine 會從索引 0 開始,傳回包含 wolverine 的前 10 個命中項目。以下範例將 start 參數設為 10 以取得下一組的 10 個命中項目。

search?q=wolverine&start=10

若您想要一次擷取 25 個命中項目,請將 size 參數設為 25。如欲取得第一組命中項目,便不需要設定 start 參數。

search?q=wolverine&size=25

對於後續請求,使用 start 參數可擷取任一組所需的命中項目。例如,若要取得第三批次的 25 個命中項目,請指定以下內容:

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

在 Amazon CloudSearch 中深入翻頁超過 10,000 個命中項目

若您只需要存取少數前幾頁的結果,使用 sizestart 翻頁瀏覽結果便不成問題。然而,如果您需要翻頁瀏覽上千個命中項目,使用游標將會更有效率。若要翻頁瀏覽超過 10,000 個命中項目,您必須使用 cursor (使用 startsize 參數總共只能存取前 10,000 個命中項目)。

若要使用游標瀏覽結果,請指定cursor=initial,並在您的初始搜索請求中包含size參數來指定您想要取得的點擊次數。Amazon CloudSearch 會隨回應傳回游標值,供您用於取得下一組命中項目。游標會傳回循序排列的各組命中項目,但您可以視需要使用這些項目來模擬隨機存取深層頁面。請切記,游標主要是供初次請求用於在合理的時間內翻頁瀏覽結果集。若在此期間有更新發佈至索引,使用的游標一旦過時就會傳回過時的結果。

重要

當您使用游標翻頁瀏覽依文件分數 (_score) 排序的結果集時,若兩次請求相隔其間發生了索引更新,您可能就會得到不一致的結果。如果您的網域複寫計數大於一,這種情況也有可能發生,因為更新會最終一致地套用於網域內的各執行個體。若您遇到此問題,請避免將結果依分數排序。您可以使用 sort 選項依特定欄位排序,或者使用 fq 代替 q 指定您的搜尋條件 (對篩選條件查詢不會計算文件分數)。

例如,以下請求將 cursor 值設為 initial 並將 size 參數設為 100 以取得第一組命中項目。

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

回應會隨附下一組命中項目的游標。

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

下一次的請求由 cursor 參數指定此傳回的游標值。

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