La classe Cursor
fornisce un cursore nei risultati di ricerca dell'insieme corrente, consentendoti di recuperare il set successivo in base ai criteri da te specificati. L'utilizzo dei cursori consente di migliorare le prestazioni e la coerenza dell'impaginazione man mano che gli indici vengono aggiornati.
Di seguito viene illustrato come utilizzare il cursore per passare alla pagina di risultati successiva:
# 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 qualsiasi 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
viene definito come segue:
-
class Cursor(web_safe_string=None, per_result=False)
Crea un'istanza di classe
Cursor
.Argomenti
- per_result
Se il valore è true, restituisce un cursore per ScoredDocument in SearchResults. Se il valore è false, restituisce un unico cursore per tutti i risultati della ricerca. Ignorato se utilizzi
QueryOptions.offset
, poiché l'utente è responsabile del calcolo di un offset successivo (se presente).- web_safe_string
La stringa del cursore restituita dal servizio di ricerca che deve essere interpretata per ottenere il successivo insieme di risultati.
Valore risultato
Una nuova istanza della classe
Cursor
.
Eccezioni
- ValueError
Se il valore
web_safe_string
fornito dall'API non è nel formato richiesto.
Proprietà
Un'istanza della classe Cursor
ha le seguenti proprietà:
- per_result
Restituisce un valore che indica se restituire un cursore per ogni ScoredDocument nei risultati.
- web_safe_string
Restituisce la stringa del cursore generata dal servizio di ricerca.