Die QueryOptions-Klasse

Die Klasse QueryOptions bietet Optionen für die Nachbearbeitung von Abfrageergebnissen anhand der Anwendungsanforderungen. Sie erstellen die Klasse als options im Argument Query.options.

Achtung: **Diese Lösung wird nicht mehr empfohlen:** Anwendungen, die diese API verwenden, können nur in der Python 2-Laufzeit ausgeführt werden und müssen vor der Migration zur Python 3-Laufzeit auf eine [empfohlene Lösung](/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) aktualisiert werden.

Query ist im Modul google.appengine.api.search definiert.

Einführung

Die Klasse QueryOptions bietet Optionen für die Nachbearbeitung der Ergebnisse einer bestimmten Abfrage. Optional können Sie die Ergebnisse sortieren, festlegen, welche Dokumentfelder zurückgegeben werden, Snippets von Feldern erzeugen sowie nach komplexen Bewertungsausdrücken berechnen und sortieren.

Wenn Sie nach dem Zufallsprinzip auf Seiten mit Suchergebnissen zugreifen möchten, können Sie einen Offset verwenden:

from google.appengine.api import search
...
# get the first set of results
page_size = 10
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size))

# calculate pages
pages = results.number_found / page_size

# user chooses page and hence an offset into results
next_page = ith * page_size

# get the search results for that page
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size, offset=next_page))

Zum Beispiel fordert das folgende Codefragment eine Suche nach Dokumenten an, bei denen im Feld subject das Element first und in einem beliebigen Feld good vorkommt, wobei höchstens 20 Dokumente zurückgegeben werden. Der Cursor wird für die nächste Seite der Ergebnisse angefordert und ein anderer Cursor für die nächste Ergebnismenge. Die Sortierung erfolgt nach Thema in absteigender Reihenfolge. Es werden der Autor, das Thema, Zusammenfassungsfelder sowie ein Snippet-Feldinhalt zurückgegeben:

...
results = index.search(search.Query(
    query='subject:first good',
    options=search.QueryOptions(
        limit=20,
        cursor=search.Cursor(),
        sort_options=search.SortOptions(
            expressions=[
                search.SortExpression(expression='subject', default_value='')],
            limit=1000),
        returned_fields=['author', 'subject', 'summary'],
        snippeted_fields=['content'])))

Konstruktor

Der Konstruktor für die Klasse QueryOptions ist so definiert:

class QueryOptions(limit=20, number_found_accuracy=None, cursor=None, offset=None, sort_options=None, returned_fields=None, ids_only=False, snippeted_fields=None, returned_expressions=None)

Geben Sie Optionen an, welche die Ergebnisse der Suchanfrage definieren.

Argumente

limit

Das Limit für die Anzahl der Dokumente, die in Ergebnissen zurückgegeben werden sollen.

number_found_accuracy

Die Mindestanforderung an die Genauigkeit für SearchResults.number_found. Wenn festgelegt, ist die Rückgabe mindestens bis zu dieser Zahl genau. Wenn Sie beispielsweise 100 festlegen, gilt jedes SearchResults-Objekt mit number_found_accuracy <= 100 als genau.

cursor

Ein Cursor, der beschreibt, wo die nächste Ergebnismenge zu finden ist oder wo die nächsten Cursors in den SearchResults bereitgestellt werden.

offset

Der Offset gibt die Anzahl der Dokumente an, die in den Suchergebnissen übersprungen werden. Das bietet eine Alternative zum Abfrage-Cursor und ermöglicht den zufälligen Zugriff auf die Ergebnisse. Offsets sind (in Bezug auf die Instanzstunden) kostspieliger als Cursor. Sie können entweder einen Cursor oder ein Offset, aber nicht beides verwenden. Bei Verwendung eines Offsets wird in ScoredDocument.cursor oder ScoredDocument.cursor kein Cursor zurückgegeben.

sort_options

Ein SortOptions-Objekt für die mehrdimensionale Sortierung von Suchergebnissen.

returned_fields

Iterierbare Namen der Felder, die in den Suchergebnissen zurückgegeben werden.

ids_only

Gibt nur Dokument-IDs zurück, keine Felder.

snippeted_fields

Iterierbare Namen der Felder, von denen in Suchergebnisausdrücken Snippets zurückgegeben werden.

returned_expressions

Eine Iteration von FieldExpression zum Auswerten und Zurückgeben von Suchergebnissen.

Ergebniswert

Eine neue Instanz der Klasse QueryOptions.

Ausnahmen

TypeError

Wenn unbekannte iterator_options oder sort_options weitergegeben werden.

ValueError

Wenn ids_only und returned_fields zusammen verwendet werden.

Attribute

Eine Instanz der Klasse Query hat die folgenden Attribute:

limit

Gibt ein Limit für die Anzahl der Dokumente an, die in Ergebnissen zurückgegeben werden sollen

number_found_accuracy

Gibt die Mindestanforderungen an die Genauigkeit für SearchResults.number_found zurück.

cursor

Gibt den Cursor für die Abfrage zurück.

offset

Gibt die Anzahl der zu überspringenden Dokumente in den Suchergebnissen zurück.

sort_options

Gibt ein SortOptions-Objekt zurück.

returned_fields

Liefert iterierbare Namen der Felder, die in den Suchergebnissen zurückgegeben werden sollen.

ids_only

Gibt in den Suchergebnissen nur zurück.

snippeted_fields

Liefert die iterierbaren Namen der Felder, von denen in den Ergebnissen Snippets zurückgegeben werden sollen.

returned_expressions

Gibt den iterierbaren Wert von FieldExpression für die Rückgabe in den Ergebnissen zurück.