La classe de curseur

La classe Cursor fournit un curseur dans les résultats de recherche définis actuellement, ce qui vous permet de récupérer l'ensemble suivant en fonction des critères que vous spécifiez. L'utilisation de curseurs améliore les performances et la cohérence de la pagination lors de la mise à jour des index.

Voici comment utiliser le curseur pour obtenir la page de résultats suivante :

# 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)))

Si vous souhaitez poursuivre la recherche à partir de l'un des ScoredDocuments de SearchResults, définissez Cursor.per_result sur 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)))

Le curseur peut être mis en cache en tant que chaîne Web sécurisée pouvant être utilisée pour reconstruire le curseur. Exemple :

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)))

Constructor

Le constructeur de la classe Cursor est défini comme suit :

class Cursor(web_safe_string=None, per_result=False)

Construire une instance de la classe Cursor.

Arguments

per_result

Lorsque la valeur est true, cela renvoie un curseur par ScoredDocument dans SearchResults. Lorsque la valeur est false, un seul curseur est renvoyé pour tous les résultats de recherche. Ignoré si vous utilisez QueryOptions.offset, car l'utilisateur est responsable du calcul du prochain décalage (le cas échéant).

web_safe_string

La chaîne de curseur renvoyée par le service de recherche à interpréter par le service de recherche pour obtenir le prochain ensemble de résultats.

Result value

Nouvelle instance de la classe Cursor.

Exceptions

ValueError

Si le web_safe_string fourni par l'API n'a pas le format requis.

Propriétés

Une instance de la classe Cursor possède les propriétés suivantes :

per_result

Indique s'il faut retourner un curseur pour chaque ScoredDocument dans les résultats.

web_safe_string

Renvoie la chaîne de curseur générée par le service de recherche.