La classe QueryOptions
fournit des options pour le post-traitement des résultats de requête suivant les besoins de votre application. Vous construisez la classe en tant qu'objet options
dans l'argument Query.options.
La classe Query
est définie dans le module google.appengine.api.search
.
Présentation
La classe QueryOptions
fournit des options pour le post-traitement des résultats d'une requête spécifique. Les options incluent la possibilité de trier les résultats, de contrôler les champs de document à renvoyer, de produire des extraits de champs, ainsi que de calculer et trier suivant des expressions d'évaluation complexes.
Si vous souhaitez accéder de manière aléatoire aux pages de résultats de recherche, vous pouvez utiliser un décalage :
from google.appengine.api import search ... # get the first set of results page_size = 10 results = index.search(search.Query(query_string='some stuff', options=search.QueryOptions(limit=page_size)) # calculate pages pages = results.number_found / page_size # user chooses page and hence an offset into results next_page = ith * page_size # get the search results for that page results = index.search(search.Query(query_string='some stuff', options=search.QueryOptions(limit=page_size, offset=next_page))
Par exemple, le fragment de code suivant émet une requête de recherche de documents basée sur la présence du terme first
dans le champ subject
et du terme good
dans n'importe quel champ, avec les critères suivants : renvoi de 20 documents au plus, curseur de résultats sur la page de résultats suivante, renvoi d'un autre curseur pour l'ensemble de résultats suivants, tri par sujet en ordre décroissant, renvoi des champs d'auteur, de sujet et de résumé, ainsi que d'un extrait du champ de contenu.
... results = index.search(search.Query( query='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'])))
Constructeur
Le constructeur de la classe QueryOptions
est défini comme suit :
-
class QueryOptions(limit=20, number_found_accuracy=None, cursor=None, offset=None, sort_options=None, returned_fields=None, ids_only=False, snippeted_fields=None, returned_expressions=None)
Permet de spécifier les options définissant les résultats de requête de recherche.
-
Arguments
- limit
Limite sur le nombre de documents à renvoyer dans les résultats.
- number_found_accuracy
Exactitude minimale requise pour
SearchResults.number_found
. Si cet argument est défini, l'exactitude est préservée jusqu'à au moins ce nombre. Par exemple, lorsqu'il est défini sur 100, tout objetSearchResults
pour lequelnumber_found_accuracy
<= 100 est exact.- cursor
Curseur décrivant où obtenir le jeu de résultats suivants ou bien où indiquer les curseurs suivants dans SearchResults.
- offset
Le décalage représente le nombre de documents à sauter dans les résultats de la recherche. C'est une alternative à l'utilisation d'un curseur de requête. Il permet un accès aléatoire aux résultats. Les décalages sont plus coûteux (en termes d'heures d'utilisation de l'instance) que les curseurs. Vous pouvez utiliser soit un curseur, soit un décalage, mais pas les deux à la fois. L'utilisation d'un décalage signifie qu'aucun curseur n'est renvoyé dans
ScoredDocument.cursor
ouScoredDocument.cursor
.- sort_options
Objet
SortOptions
spécifiant un tri multidimensionnel à appliquer aux résultats de la recherche.- returned_fields
Itérable de noms de champs à renvoyer dans les résultats de recherche.
- ids_only
Indique de renvoyer uniquement les identifiants de document, et aucun champ.
- snippeted_fields
Itérable de noms de champs dont un extrait seulement doit être renvoyé dans les résultats de recherche.
- returned_expressions
Itérable de FieldExpression à évaluer et à renvoyer dans les résultats de recherche.
Result value
Nouvelle instance de la classe
QueryOptions
.
Exceptions
- TypeError
Si un argument iterator_options ou sort_options inconnu est transmis.
- ValueError
Si
ids_only
etreturned_fields
sont utilisés conjointement.
Propriétés
Une instance de la classe Query
possède les propriétés suivantes :
- limit
Renvoie une limite sur le nombre de documents à renvoyer dans les résultats.
- number_found_accuracy
Renvoie l'exactitude minimale requise pour SearchResults.number_found.
- cursor
Renvoie le curseur pour la requête.
- offset
Renvoie le nombre de documents à sauter dans les résultats de la recherche.
- sort_options
Renvoie un objet SortOptions.
- returned_fields
Renvoie un itérable des noms de champs à renvoyer dans les résultats de la recherche.
- ids_only
Renvoie seulement
- snippeted_fields
Renvoie un itérable des noms de champs pour lesquels un extrait seulement doit être renvoyé dans les résultats.
- returned_expressions
Renvoie un itérable d'objets FieldExpression à renvoyer dans les résultats.