La clase Cursor
proporciona un cursor en los resultados de la búsqueda del conjunto actual, lo que te permite recuperar el siguiente conjunto según los criterios que especifiques. El uso de cursores mejora el rendimiento y la coherencia de la paginación a medida que se actualizan los índices.
A continuación, se muestra cómo usar el cursor para obtener la siguiente 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)))
Si deseas continuar la búsqueda desde cualquiera de los ScoredDocuments
en SearchResults
, establece Cursor.per_result
en 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)))
El cursor se puede almacenar en caché como una string web segura que se puede usar para reconstruir la clase Cursor. Por ejemplo,
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)))
Constructor
El constructor para la clase Cursor
se define de la siguiente manera:
-
class Cursor(web_safe_string=None, per_result=False)
Construye una instancia de la clase
Cursor
.Argumentos
- per_result
Cuando es verdadero, muestra un cursor por ScoredDocument en SearchResults. Cuando es falso, muestra un solo cursor para todos los SearchResults. Se pasa por alto si se usa
QueryOptions.offset
, ya que el usuario es responsable de calcular el siguiente desplazamiento (si lo hubiera).- web_safe_string
La string de cursor que muestra el servicio de búsqueda debe ser interpretada por el servicio de búsqueda para obtener el siguiente conjunto de resultados.
Valor del resultado
Una instancia nueva de la clase
Cursor
.
Excepciones
- ValueError
Si la
web_safe_string
que proporcionó la API no está en el formato requerido.
Propiedades
Una instancia de la clase Cursor
tiene las siguientes propiedades:
- per_result
Muestra si mostrar un cursor para cada ScoredDocument en los resultados.
- web_safe_string
Muestra la string de cursor generada por el servicio de búsqueda.