Corso Cursor

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.