La classe Query
représente une requête sur le service de recherche pour interroger l'index.
La classe Query
est définie dans le module google.appengine.api.search
.
Présentation
La classe Query
permet de spécifier une chaîne de requête et d'autres options, comme l'ordre de tri, la limite et un curseur, en vue d'effectuer une recherche sur un index. Ces options se définissent par instanciation de la classe QueryOptions
à l'aide des paramètres Query.options
.
Par exemple, le fragment de code ci-après demande une recherche de documents à partir du terme first
dans le sujet et du terme good
présent partout dans le texte, selon les critères suivants : renvoi de 20 documents au plus, curseur de résultats sur un seul document, tri par sujet et par ordre décroissant, champs d'auteur, de sujet, de résumé et d'extrait de contenu.
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']))) ...
Si vous le souhaitez, vous pouvez renvoyer un curseur avec chaque ensemble de résultats de recherche. Ce curseur permet de parcourir plus facilement les pages de résultats. Pour obtenir un curseur, vous devez le spécifier à l'aide du paramètre QueryOptions.cursor
puis, pour la requête suivante, l'extraire de SearchResults.cursor
.
La recherche se poursuivra à partir du dernier document trouvé, comme indiqué ci-dessous :
... results = index.search( search.Query(query_string='subject:first good', options=search.QueryOptions(cursor=results.cursor)))
Constructeur
Le constructeur de la classe Query
est défini comme suit :
-
class Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)
Demandez au service de recherche d'interroger un index en spécifiant les paramètres de cette requête.
Arguments
- query_string
Chaîne de requête à mettre en correspondance avec les documents de l'index. Une requête est une expression booléenne contenant des termes. Par exemple, la requête
job tag:"very important" sent < 2011-02-28
recherche des documents contenant le termejob
dans n'importe quel champ, et contient également l'expressionvery important
dans un champtag
et une datesent
antérieure au 28 février 2011.- options
Instanciation de la classe
QueryOptions
avec des instructions pour le post-traitement des résultats de recherche.- enable_facet_discovery
Active la découverte des attributs les plus pertinents présents dans les documents qui répondent à cette requête de recherche et les renvoie.
- return_facets
Valeur itérable de FacetRequest ou de basestring en tant que nom d'attribut permettant de renvoyer un attribut spécifique avec le résultat.
- facet_options
Paramètre de FacetOption décrivant le traitement des attributs.
- facet_refinements
Valeur itérable d'objets FacetRefinement ou de chaînes de jetons d'affinage utilisés pour filtrer les résultats de recherche en fonction d'une valeur d'attribut. Les affinages de différents attributs constituent une conjonction, alors que les affinages d'un même attribut constituent une disjonction.
Result value
Nouvelle instance de la classe
Query
.
Exceptions
- TypeError
Générée lorsque la requête
query_string
n'est pas une chaîne ou que lesoptions
ne sont pas un objetQueryOptions
.- ValueError
Générée lorsque la requête
query_string
n'a pas pu être analysée.
Propriétés
Une instance de la classe
Query
possède les propriétés suivantes :- query_string
Renvoie la chaîne de requête à rechercher dans cette requête.
- options
Renvoie le
QueryOptions
définissant le post-traitement des résultats de recherche.