A classe Cursor

A classe Cursor fornece um cursor nos resultados da pesquisa do conjunto atual, o que lhe permite obter o conjunto seguinte com base nos critérios que especificar. A utilização de cursores melhora o desempenho e a consistência da paginação à medida que os índices são atualizados.

O exemplo seguinte mostra como usar o cursor para obter a página de resultados seguinte:

# 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)))

Se quiser continuar a pesquisa a partir de qualquer um dos ScoredDocuments em SearchResults, defina Cursor.per_result como 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)))

O cursor pode ser colocado em cache como uma string segura para a Web que pode ser usada para reconstruir o cursor. Por exemplo,

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)))

Construtor

O construtor da classe Cursor é definido da seguinte forma:

class Cursor(web_safe_string=None, per_result=False)

Construa uma instância da classe Cursor.

Argumentos

per_result

Quando é verdadeiro, devolve um cursor por ScoredDocument em SearchResults. Quando é falso, devolve um único cursor para todos os SearchResults. Ignorado se usar QueryOptions.offset, uma vez que o utilizador é responsável por calcular um desvio seguinte (se existir).

web_safe_string

A string do cursor devolvida pelo serviço de pesquisa para ser interpretada pelo serviço de pesquisa para obter o conjunto de resultados seguinte.

Valor do resultado

Uma nova instância da classe Cursor.

Exceções

ValueError

Se o web_safe_string fornecido pela API não estiver no formato necessário.

Propriedades

Uma instância da classe Cursor tem as seguintes propriedades:

per_result

Devolve se deve devolver um cursor para cada ScoredDocument nos resultados.

web_safe_string

Devolve a string do cursor gerada pelo serviço de pesquisa.