La clase Cursor
proporciona un cursor en el conjunto actual de resultados de búsqueda, lo que le permite obtener el siguiente conjunto en función de los criterios que especifique. 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 quieres seguir buscando desde cualquiera de los ScoredDocuments
de SearchResults
, activa Cursor.per_result
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 cadena segura para la Web que se puede usar para reconstruir el 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 de la clase Cursor
se define de la siguiente manera:
-
class Cursor(web_safe_string=None, per_result=False)
Crea una instancia de la clase
Cursor
.Argumentos
- per_result
Si es true, devuelve un cursor por cada ScoredDocument en SearchResults. Si es false, devuelve un solo cursor para todos los SearchResults. Se ignora si se usa
QueryOptions.offset
, ya que el usuario es responsable de calcular el siguiente desplazamiento (si lo hay).- web_safe_string
Cadena de cursor devuelta por el servicio de búsqueda para que el servicio de búsqueda la interprete y obtenga el siguiente conjunto de resultados.
Valor de resultado
Una nueva instancia de la clase
Cursor
.
Excepciones
- ValueError
Si el
web_safe_string
proporcionado por la API no tiene el formato requerido.
Propiedades
Una instancia de la clase Cursor
tiene las siguientes propiedades:
- per_result
Devuelve si se debe devolver un cursor por cada ScoredDocument de los resultados.
- web_safe_string
Devuelve la cadena de cursor generada por el servicio de búsqueda.