Klasse "Cursor"

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