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