Die Klasse Cursor
stellt in der aktuellen Gruppe der Suchergebnisse einen Cursor bereit, mit dem Sie die nächste Gruppe nach von Ihnen angegebenen Kriterien abrufen können. Die Verwendung eines Cursors verbessert die Leistung und Konsistenz der Paginierung beim Aktualisieren von Indexen.
Nachfolgend sehen Sie, wie mit dem Cursor die nächste Ergebnisseite aufgerufen wird:
# 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)))
Wenn Sie die Suche aus einem der ScoredDocuments
in SearchResults
fortführen möchten, setzen Sie Cursor.per_result
auf 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)))
Der Cursor kann als websicherer String, der zur Rekonstruktion des Cursors verwendet werden kann, im Cache gespeichert werden. Beispiel:
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)))
Konstruktor
Der Konstruktor für die Klasse Cursor
ist so definiert:
-
class Cursor(web_safe_string=None, per_result=False)
Konstruieren Sie eine Instanz der Klasse
Cursor
.Argumente
- per_result
Bei "true" wird in SearchResults ein Cursor pro ScoredDocument zurückgegeben. Bei "false" wird für alle SearchResults ein einziger Cursor zurückgegeben. Wird ignoriert, wenn
QueryOptions.offset
verwendet wird, da der Nutzer für die Berechnung des nächsten Offsets (falls vorhanden) verantwortlich ist.- web_safe_string
Der vom Suchdienst zurückgegebene Cursorstring, der vom Suchdienst interpretiert wird, um die nächste Gruppe von Ergebnissen abzurufen.
Ergebniswert
Eine neue Instanz der Klasse
Cursor
.
Ausnahmen
- ValueError
Wenn der von der API bereitgestellte
web_safe_string
nicht das erforderliche Format aufweist.
Eigenschaften
Eine Instanz der Klasse Cursor
hat die folgenden Attribute:
- per_result
Gibt zurück, ob für jedes ScoredDocument in den Ergebnissen ein Cursor zurückgegeben werden soll.
- web_safe_string
Gibt den vom Suchdienst generierten Cursorstring zurück