A classe Cursor

A classe Cursor fornece um cursor nos resultados da pesquisa do conjunto atual, permitindo que você recupere o próximo conjunto com base nos critérios especificados. O uso de cursores melhora o desempenho e a consistência da paginação à medida que os índices são atualizados.

Isto mostra como usar o cursor para receber a próxima página de resultados:

# 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 você quiser continuar a pesquisa 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 armazenado em cache como uma string segura da Web que pode ser usada para recriar 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 maneira:

class Cursor(web_safe_string=None, web_safe_string=False)

Crie uma instância da classe Cursor.

Argumentos

per_result

Quando verdadeiro, retorna um cursor por ScoredDocument em SearchResults. Quando falso, retorna um único cursor de todos os SearchResults. Ignorado se estiver usando QueryOptions.offset, porque o usuário é responsável por calcular um próximo deslocamento (se houver).

web_safe_string

A string de cursor retornada do serviço de pesquisa a ser interpretada pelo serviço de pesquisa para recuperar o próximo conjunto de resultados.

Valor do resultado

Uma nova instância da classe Cursor.

Exceções

ValueError

Se a web_safe_string fornecida pela API não estiver no formato obrigatório.

Propriedades

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

per_result

Retorna se é necessário retornar um cursor para cada ScoredDocument nos resultados.

web_safe_string

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