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 per la 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. Ignorato se utilizzi
QueryOptions.offset
, in quanto l'utente è responsabile del calcolo dell'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
Indica se restituire un cursore per ogni ScoredDocument nei risultati.
- web_safe_string
Restituisce la stringa del cursore generata dal servizio di ricerca.