Klasse "Query"

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 Begriff job in einem beliebigen Feld und auch die Phrase very important in einem tag-Feld sowie das sent-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 oder options kein QueryOptions-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.