La classe Cursor fornisce un cursore nei risultati di ricerca del set corrente, consentendoti di recuperare il set successivo in base ai criteri specificati. L'utilizzo dei cursori migliora le prestazioni e la coerenza della paginazione man mano che gli indici vengono aggiornati.
Di seguito viene mostrato come utilizzare il cursore per ottenere 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 ogni ScoredDocument in SearchResults. Se false, restituisce un singolo cursore per tutti i SearchResults. Ignorato se utilizzi
QueryOptions.offset, in quanto l'utente è responsabile del calcolo di un offset successivo (se presente).- web_safe_string
La stringa del cursore restituita dal servizio di ricerca da interpretare per ottenere il set successivo di risultati.
Valore del risultato
Una nuova istanza della classe
Cursor.
Eccezioni
- ValueError
Se il
web_safe_stringfornito dall'API non è nel formato richiesto.
Proprietà
Un'istanza della classe Cursor ha le seguenti proprietà:
- per_result
Restituisce un cursore per ogni ScoredDocument nei risultati.
- web_safe_string
Restituisce la stringa del cursore generata dal servizio di ricerca.