Classe Query

La classe Query rappresenta una richiesta al servizio di ricerca di eseguire una query sull'indice.

Query è definito nel modulo google.appengine.api.search.

Introduzione

La classe Query consente di specificare una stringa di query e altre opzioni, come l'ordinamento, il limite e un cursore, per una ricerca su un indice. Puoi impostare queste opzioni creando un'istanza della classe QueryOptions nel parametro Query.options.

Ad esempio, il seguente frammento di codice richiede una ricerca di documenti in cui first compare nell'oggetto e good si verifica ovunque, restituendo al massimo 20 documenti, restituendo un singolo cursore del documento per i risultati, ordinando per soggetto in ordine decrescente, restituendo i campi autore, oggetto e riepilogo, nonché il contenuto di un campo snippet.

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'])))
...

Puoi scegliere di restituire un cursore con ogni insieme di risultati di ricerca. Questo cursore ti consente di sfogliare più facilmente i risultati di ricerca. Per ottenere un cursore, specificalo in QueryOptions.cursor ed estrai il cursore per la richiesta successiva da SearchResults.cursor. In questo modo puoi continuare la ricerca dall'ultimo documento trovato, come mostrato di seguito:

...
results = index.search(
    search.Query(query_string='subject:first good',
          options=search.QueryOptions(cursor=results.cursor)))

Costruttore

Il costruttore per la classe Query è definito come segue:

class Query(query_string, options=None, allow_facet_discovery=False, Return_facets=None, facet_options=None, facet_refinements=None)

Richiedi al servizio di ricerca di eseguire una query su un indice, specificando i parametri per la query.

Argomenti

query_string

La query per trovare una corrispondenza con i documenti nell'indice. Una query è un'espressione booleana che contiene dei termini. Ad esempio, la query job tag:"very important" sent < 2011-02-28 trova documenti con il termine job in qualsiasi campo e contiene anche la frase very important in un campo tag e una data sent precedente al 28 febbraio 2011.

opzioni

Creazione di un'istanza della classe QueryOptions con istruzioni per la post-elaborazione dei risultati di ricerca.

enable_facet_discovery

Abilita il rilevamento dei facet più pertinenti utilizzati dai documenti che soddisfano questa query di ricerca e li restituiscono.

return_facets

Un iterabile di FacetRequest o basestring come nome del facet per restituire un facet specifico con il risultato.

facet_options

Una FacetOption che descrive l'elaborazione dei facet.

facet_refinements

Un iterabile di oggetti FacetRefinement o stringhe di token di perfezionamento utilizzate per filtrare i risultati di ricerca in base a un valore facet. i perfezionamenti per facet diversi verranno congiuntamente e i perfezionamenti per lo stesso facet verranno disgiunzioni.

Valore del risultato

Una nuova istanza della classe Query.

Eccezioni

TypeError

Aumentato quando query_string non è una stringa o options non è un oggetto QueryOptions.

ValueError

Aumentato quando non è stato possibile analizzare query_string.

Proprietà

Un'istanza della classe Query ha le seguenti proprietà:

query_string

Restituisce la stringa di query per cercare in questa richiesta.

opzioni

Restituisce il valore QueryOptions che definisce la post-elaborazione dei risultati di ricerca.