Die Klasse Query
stellt eine Anfrage an den Suchdienst zur Abfrage des Index dar.
Query
ist im Modul google.appengine.api.search
definiert.
Einführung
Mit der Klasse Query
können Sie für die Suche in einem Index einen Abfragestring sowie weitere Optionen wie die Sortierreihenfolge, ein Limit und einen Cursor angeben. Diese Optionen legen Sie fest, wenn Sie die Klasse QueryOptions
für den Parameter Query.options
instanziieren.
Mit dem folgenden Codefragment wird z. B. eine Suche nach Dokumenten eingeleitet, in denen first
im Betreff und good
an beliebiger Stelle vorkommen. Maximal werden 20 Dokumente sowie ein einzelner Dokumentcursor für die Ergebnisse zurückgegeben. Sortiert wird in absteigender Reihenfolge nach dem Feld "subject" und es werden die Felder "author", "subject" und "summary" sowie ein Ausschnitt des Felds "content" zurückgegeben.
from google.appengine.api import search ... results = index.search(search.Query( # Specify the query string using the Search API's Query language. query_string='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']))) ...
Sie können festlegen, dass mit jeder Gruppe von Suchergebnissen ein Cursor zurückgegeben wird. Mit diesem Cursor lassen sich die Suchergebnisse einfacher durchblättern. Zum Abrufen eines Cursors geben Sie ihn in QueryOptions.cursor
an und extrahieren ihn für die nächste Anfrage aus SearchResults.cursor
.
Dadurch haben Sie die Möglichkeit, die Suche ab dem zuletzt gefundenen Dokument fortzusetzen, wie hier gezeigt:
... results = index.search( search.Query(query_string='subject:first good', options=search.QueryOptions(cursor=results.cursor)))
Konstruktor
Der Konstruktor für die Klasse Query
ist so definiert:
-
Klasse Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)
Anfrage an den Suchdienst für eine Indexabfrage unter Angabe von Parametern für diese Abfrage.
Argumente
- query_string
Die Abfrage zum Abgleich mit den Dokumenten im Index. Eine Abfrage ist ein boolescher Ausdruck, der Begriffe enthält. Die Abfrage
job tag:"very important" sent < 2011-02-28
findet beispielsweise Dokumente, die den Begriffjob
in einem beliebigen Feld und auch die Phrasevery important
in einemtag
-Feld sowie dassent
-Datum vor dem 28. Februar 2011 enthalten.- options
Instanziierung der Klasse
QueryOptions
mit Anweisungen für die Nachverarbeitung von Suchergebnissen.- enable_facet_discovery
Aktiviert die Erkennung der relevantesten Attribute, die von den Dokumenten verwendet werden und diese Suchanfrage erfüllen, sowie deren Rückgabe.
- return_facets
Ein iterierbares Element von FacetRequest oder Basisstring als Attributname für die Rückgabe bestimmter Attribute mit dem Ergebnis.
- facet_options
Eine FacetOption zur Beschreibung der Verarbeitung von Attributen.
- facet_refinements
Ein iterierbares Element von FacetRefinement-Objekten oder Suchfilter-Tokenstrings zum Filtern von Suchergebnissen nach einem Attributwert. Suchfilter für unterschiedliche Attribute werden als Konjunktion behandelt, Suchfilter für dasselbe Attribut als Disjunktion.
Ergebniswert
Eine neue Instanz der Klasse
Query
.
Ausnahmen
- TypeError
Wird ausgelöst, wenn
query_string
kein String oderoptions
keinQueryOptions
-Objekt ist.- ValueError
Wird ausgelöst, wenn
query_string
nicht geparst werden konnte.
Eigenschaften
Eine Instanz der Klasse
Query
hat die folgenden Attribute:- query_string
Gibt den Abfragestring für die Suche in diesem Request zurück.
- options
Gibt die
QueryOptions
zurück, mit denen die Nachverarbeitung der Suchergebnisse definiert wird.