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. Puoi impostare queste opzioni creando un'istanza del valore
QueryOptions
classe al
Query.options
.
Ad esempio, il seguente frammento di codice richiede una ricerca di documenti in cui first
si verifica nell'oggetto e good
si verifica ovunque, restituendo al massimo 20 documenti, restituendo
un singolo cursore del documento per visualizzare i risultati, ordinando i risultati per soggetto in ordine decrescente, restituendo il valore
campi relativi all'autore, all'oggetto e al 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 ti consente di scorrere più facilmente i risultati di ricerca. Per ottenere un cursore, specificalo in
QueryOptions.cursor
ed estrai il cursore per
la prossima richiesta da parte di 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=Nessuno, 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 che contiene dei 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
Creazione di un'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
Una FacetOption che descrive l'elaborazione dei facet.
- 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 diversi facet verranno congiuntamente e i perfezionamenti per la stessa facet sarà la disgiunzione.
Valore del risultato
Una nuova istanza della classe
Query
.
Eccezioni
- TypeError
Aumentato 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.