La clase Cursor

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.