La classe Cursor

La classe Cursor fornisce un cursore nei risultati di ricerca dell'insieme corrente, consentendo di recuperare l'insieme successivo in base ai criteri specificati. L'utilizzo dei cursori migliora il rendimento e la coerenza della paginazione man mano che gli indici vengono aggiornati.

Di seguito viene mostrato come utilizzare il cursore per visualizzare la pagina successiva dei risultati:

# 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 vuoi continuare la ricerca da uno dei ScoredDocuments in SearchResults, imposta Cursor.per_result su 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)))

Il cursore può essere memorizzato nella cache come stringa sicura per il web che può essere utilizzata per ricostruire il cursore. Ad esempio,

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)))

Costruttore

Il costruttore della classe Cursor è definito come segue:

class Cursor(web_safe_string=None, per_result=False)

Costruisci un'istanza della classe Cursor.

Argomenti

per_result

Se è true, restituisce un cursore per ScoredDocument in SearchResults. Se è false, restituisce un singolo cursore per tutti i risultati di ricerca. Viene ignorato se si utilizza QueryOptions.offset, in quanto è responsabilità dell'utente calcolare un eventuale offset successivo.

web_safe_string

La stringa del cursore restituita dal servizio di ricerca da interpretare dal servizio di ricerca per ottenere il set di risultati successivo.

Valore del risultato

Una nuova istanza della classe Cursor.

Eccezioni

ValueError

Se il web_safe_string fornito dall'API non è nel formato richiesto.

Proprietà

Un'istanza della classe Cursor ha le seguenti proprietà:

per_result

Restituisce se restituire un cursore per ogni ScoredDocument nei risultati.

web_safe_string

Restituisce la stringa del cursore generata dal servizio di ricerca.