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, per_result=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.