La classe Query rappresenta una richiesta al servizio di ricerca per 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 in un indice. Imposti queste opzioni creando un'istanza della classe QueryOptions per il parametro Query.options.
Ad esempio, il seguente frammento di codice richiede la ricerca di documenti in cui first
si verifica nell'oggetto e good si verifica ovunque, restituisce al massimo 20 documenti, restituisce
un singolo cursore del documento per i risultati, ordina in ordine decrescente per oggetto, restituisce
i campi autore, oggetto e riepilogo, nonché i contenuti dei campi suddivisi in 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']))) ...
Hai la possibilità di restituire un cursore con ogni insieme di risultati di ricerca. Questo cursore ti consente di scorrere più facilmente i risultati di ricerca. Per ottenere un cursore, specificalo in QueryOptions.cursor ed estrailo 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 della classe Query è definito come segue:
-
class Query(query_string, options=None, enable_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 da confrontare con i documenti nell'indice. Una query è un'espressione booleana contenente termini. Ad esempio, la query
job tag:"very important" sent < 2011-02-28trova i documenti con il terminejobin qualsiasi campo e che contengono anche la frasevery importantin un campotage una datasentprecedente al 28 febbraio 2011.- opzioni
Istanza della classe
QueryOptionscon istruzioni per la post-elaborazione dei risultati di ricerca.- enable_facet_discovery
Consente di scoprire e restituire i facet più pertinenti utilizzati dai documenti che soddisfano questa query di ricerca.
- return_facets
Un iterable di FacetRequest o basestring come nome della frazione per restituire una frazione specifica con il risultato.
- facet_options
Un'opzione Facet che descrive l'elaborazione delle sfaccettature.
- facet_refinements
Un oggetto iterable di oggetti FacetRefinement o stringhe di token di perfezionamento utilizzati per filtrare i risultati di ricerca in base a un valore del facet. I perfezionamenti per sfaccettature diverse saranno congiunti e quelli per la stessa sfaccettatura saranno disgiunti.
Valore del risultato
Una nuova istanza della classe
Query.
Eccezioni
- TypeError
Viene sollevato quando
query_stringnon è una stringa ooptionsnon è un oggettoQueryOptions.- ValueError
Viene sollevato quando non è stato possibile analizzare
query_string.
Proprietà
Un'istanza della classe
Queryha le seguenti proprietà:- query_string
Restituisce la stringa di query da cercare in questa richiesta.
- opzioni
Restituisce il
QueryOptionsche definisce il post-trattamento dei risultati di ricerca.