La classe Query
rappresenta una richiesta da parte del servizio di ricerca di eseguire 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. Puoi impostare queste opzioni creando un'istanza della
classe QueryOptions
al parametro
Query.options
.
Ad esempio, il seguente frammento di codice richiede una ricerca di documenti in cui first
si trova nell'oggetto e good
si trova ovunque, restituendo al massimo 20 documenti, restituendo
un unico cursore documento per i risultati, ordinando per soggetto in ordine decrescente, restituendo i
campi autore, oggetto e riepilogo, nonché i contenuti 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']))) ...
Hai la possibilità di restituire un cursore con ogni insieme di risultati di ricerca. Questo cursore 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 della classe Query
viene definito come segue:
-
class Query(query_string, options=None, enabled_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 della query.
Argomenti
- query_string
La query da associare ai documenti nell'indice. Una query è un'espressione booleana contenente termini. Ad esempio, la query
job tag:"very important" sent < 2011-02-28
trova documenti contenenti il terminejob
in qualsiasi campo e contiene anche la frasevery important
in un campotag
e una datasent
precedente al 28 febbraio 2011.- opzioni
Creazione di un'istanza della classe
QueryOptions
con istruzioni per i risultati di ricerca post-elaborazione.- 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'iterazione di FacetRequest o basestring come nome del facet per restituire il facet specifico con il risultato.
- facet_options
Un'opzione FacetOption che descrive l'elaborazione dei facet.
- facet_refinements
Un'iterazione 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 saranno una congiunzione, mentre i perfezionamenti per lo stesso facet saranno una disgiunzione.
Valore risultato
Una nuova istanza della classe
Query
.
Eccezioni
- TypeError
Aumentato quando
query_string
non è una stringa ooptions
non è un oggettoQueryOptions
.- 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 da cercare in questa richiesta.
- opzioni
Restituisce il
QueryOptions
che definisce la post-elaborazione dei risultati di ricerca.