Classe Query
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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
.
Introduction
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 terme job
dans n'importe quel champ, et contient également l'expression very important
dans un champ tag
et une date sent
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 les options
ne sont pas un objet QueryOptions
.
- 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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThe \u003ccode\u003eQuery\u003c/code\u003e class is used to define and send search requests to an index in the search service, specifying the query string and other search parameters.\u003c/p\u003e\n"],["\u003cp\u003eYou can customize search parameters like sort order, result limits, and cursors for pagination by using the \u003ccode\u003eQueryOptions\u003c/code\u003e class in conjunction with the \u003ccode\u003eQuery\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003equery_string\u003c/code\u003e within the \u003ccode\u003eQuery\u003c/code\u003e object represents a boolean expression used to match documents within the index, enabling complex searches.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eQuery\u003c/code\u003e class allows for the retrieval of a cursor from \u003ccode\u003eSearchResults\u003c/code\u003e to enable efficient pagination through large result sets, allowing for continued searches.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eQuery\u003c/code\u003e constructor can handle options related to facet discovery and refinements, providing advanced filtering and analysis of search results.\u003c/p\u003e\n"]]],[],null,["# The Query Class\n\nClass `Query` represents a request on the search service to query the index.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| python3\n|\n| /services/access). If you are updating to the App Engine Python 3 runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/python-differences) to learn about your migration options for legacy bundled services.\n\n`Query` is defined in the `google.appengine.api.search` module.\n\nIntroduction\n------------\n\nThe `Query` class allows you to specify a query string and other options, such as sort\norder, limit, and a cursor, for a search on an index. You set these options by instantiating the\n[QueryOptions](/appengine/docs/legacy/standard/python/search/queryoptionsclass) class to the\n`Query.options` parameter.\n\nFor example, the following code fragment requests a search for documents where `first`\noccurs in subject and `good` occurs anywhere, returning at most 20 documents, returning\na single document cursor for the results, sorting by subject in descending order, returning the\nauthor, subject, and summary fields as well as a snippeted field content. \n\n```python\nfrom google.appengine.api import search\n\n...\nresults = index.search(search.Query(\n # Specify the query string using the Search API's /appengine/docs/legacy/standard/python/search/query_strings.\n query_string='subject:first good',\n options=search.QueryOptions(\n limit=20,\n cursor=search.Cursor(),\n sort_options=search.SortOptions(\n expressions=[\n search.SortExpression(expression='subject', default_value='')],\n limit=1000),\n returned_fields=['author', 'subject', 'summary'],\n snippeted_fields=['content'])))\n...\n```\n\nYou have the option to return a cursor with each set of search results. This cursor allows you to\nmore easily page through search results. To get a Cursor, specify it in\n[QueryOptions.cursor](/appengine/docs/legacy/standard/python/search/queryoptionsclass) and extract the cursor for\nthe next request from [SearchResults.cursor](/appengine/docs/legacy/standard/python/search/searchresultsclass).\nThis allows you to continue your search from the last found document, as shown below:\n\n```python\n...\nresults = index.search(\n search.Query(query_string='subject:first good',\n options=search.QueryOptions(cursor=results.cursor)))\n```\n\nConstructor\n-----------\n\nThe constructor for class `Query` is defined as follows:\n\n\nclass Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)\n\n:\n\n Request the search service to query an index, specifying parameters for that query.\n\n \u003cbr /\u003e\n\n:\n\n Arguments\n\n query_string\n\n : The query to match against documents in the index. A query is a boolean expression containing terms. For example, the query `job tag:\"very important\" sent \u003c 2011-02-28 ` finds documents with the term `job` in any field, and also contain the phrase `very important` in a `tag` field, and a `sent` date prior to February 28, 2011.\n\n options\n\n : Instantiation of the [QueryOptions](/appengine/docs/legacy/standard/python/search/queryoptionsclass) class with instructions for post-processing search results.\n\n enable_facet_discovery\n\n : Enable the discovery of the most relevant facets used by the documents that satisfy this search query\n and return them.\n\n return_facets\n\n : An iterable of FacetRequest or basestring as facet name to\n return specific facet with the result.\n\n facet_options\n\n : A FacetOption describing processing of facets.\n\n facet_refinements\n\n : An iterable of FacetRefinement objects or refinement\n token strings used to filter out search results based on a facet value.\n refinements for different facets will be conjunction and refinements for\n the same facet will be disjunction.\n\n Result value\n\n : A new instance of class `Query`.\n\n Exceptions\n\n TypeError\n\n : Raised when `query_string` is not a string or `options` is not a `QueryOptions` object.\n\n ValueError\n\n : Raised when the `query_string` could not be parsed.\n\n Properties\n ----------\n\n An instance of class `Query` has the following properties:\n\n query_string\n\n : Returns the query string to search in this request.\n\n options\n\n : Returns the [QueryOptions](/appengine/docs/legacy/standard/python/search/queryoptionsclass) defining post-processing of the search results."]]