游標類別

Cursor 類別提供目前此組搜尋結果的游標,可讓您依據您指定的條件擷取下一組搜尋結果。隨著索引的更新,使用游標可以提高分頁的效能與一致性。

以下說明如何使用游標取得下一個頁面的結果:

# Get the first set of results, and return a cursor with that result set.
# The first cursor tells the API to return cursors in the SearchResults object.
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(cursor=search.Cursor()))

# Get the next set of results with a cursor.
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(cursor=results.cursor)))

如果您想從 SearchResults 中的任何一個 ScoredDocuments 繼續搜尋,請將 Cursor.per_result 設為 True

# get the first set of results, the first cursor is used to specify
# that cursors are to be returned in the SearchResults.
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(cursor=Cursor(per_result=True)))

# this shows how to access the per_document cursors returned from a search
per_document_cursor = None
for scored_document in results:
    per_document_cursor = scored_document.cursor

# get the next set of results
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(cursor=per_document_cursor)))

游標可以被快取為網頁安全字串,用於重新建構游標。例如,

next_cursor = results.cursor
next_cursor_url_safe = next_cursor.web_safe_string

// save next_cursor_url_safe
...
// extract next_cursor_url_safe

results = index.search(
    search.Query(query_string,
        cursor=search.Cursor(web_safe_string=next_cursor_url_safe)))

建構函式

Cursor 類別的建構函式定義如下:

class Cursor(web_safe_string=None, per_result=False)

建構 Cursor 類別的例項。

引數

per_result

若為 true,則會在 SearchResults 中的每個 ScoredDocument 傳回一個游標。若為 false,則會傳回所有 SearchResults 的單一游標。如使用 QueryOptions.offset 則請忽略,因為使用者負責計算下一個偏移量 (如果有)。

web_safe_string

從搜尋服務傳回游標字串,由搜尋服務解釋以取得下一組結果。

結果值

Cursor 類別的新例項。

例外狀況

ValueError

如果 API 提供的 web_safe_string 非所需的格式。

屬性

Cursor 類別的執行個體具有下列屬性:

per_result

傳回結果中的每個 ScoredDocument 是否要傳回游標。

web_safe_string

傳回由搜尋服務產生的游標字串。