La classe del cursore

La classe Cursor fornisce un cursore nei risultati di ricerca del set corrente, consentendoti di recuperare il set successivo in base ai criteri da te specificati. L'uso dei cursori migliora le prestazioni e la coerenza dell'impaginazione man mano che gli indici vengono aggiornati.

Di seguito viene illustrato come utilizzare il cursore per visualizzare la pagina dei 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 una delle 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=Nessuno, web_safe_string=Falso)

Crea un'istanza della classe Cursor.

Argomenti

per_result

Se impostato su true, restituisce un cursore per ScoredDocument in SearchResults. Se il valore è 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 che dovrà essere interpretata dal servizio di ricerca per ottenere la serie di risultati successiva.

Valore del 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

Indica se restituire un cursore per ogni ScoredDocument nei risultati.

web_safe_string

Restituisce la stringa del cursore generata dal servizio di ricerca.