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.