Die Klasse QueryOptions
bietet Optionen für die Nachbearbeitung von Abfrageergebnissen anhand der Anwendungsanforderungen. Sie erstellen die Klasse als options
im Argument Query.options.
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 jedesSearchResults
-Objekt mitnumber_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
oderScoredDocument.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
undreturned_fields
zusammen verwendet werden.
Eigenschaften
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
- 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.