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-28
trova i documenti con il terminejob
in qualsiasi campo e che contengono anche la frasevery important
in un campotag
e una datasent
precedente al 28 febbraio 2011.- opzioni
Istanza della classe
QueryOptions
con 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_string
non è una stringa ooptions
non è un oggettoQueryOptions
.- ValueError
Viene sollevato quando non è stato possibile analizzare
query_string
.
Proprietà
Un'istanza della classe
Query
ha le seguenti proprietà:- query_string
Restituisce la stringa di query da cercare in questa richiesta.
- opzioni
Restituisce il
QueryOptions
che definisce il post-trattamento dei risultati di ricerca.