La clase QueryOptions
proporciona opciones para el posprocesamiento de los resultados de las consultas según las necesidades de tu aplicación. Puedes construir la clase como las options
en el argumento Query.options.
Query
se define en el módulo google.appengine.api.search
.
Introducción
La clase QueryOptions
brinda opciones para el posprocesamiento de los resultados de una consulta determinada. Entre las opciones, se incluye la posibilidad de ordenar los resultados, controlar qué campos del documento mostrar, producir fragmentos de campos, y procesar y ordenar por expresiones de puntuación complejas.
Si deseas acceder de forma aleatoria a las páginas de los resultados de búsqueda, puedes usar una compensación:
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))
Por ejemplo, el siguiente fragmento de código solicita una búsqueda de documentos en los que first
aparece en el campo subject
, y good
en cualquier campo, lo que muestra un máximo de 20 documentos y solicita el cursor para la siguiente página de resultados. Luego, se muestra otro cursor para el siguiente conjunto de resultados, que se ordena por asunto en orden descendente y muestra el autor, el asunto y los campos de resumen y un fragmento del contenido del campo:
... 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'])))
Constructor
El constructor para la clase QueryOptions
se define de la siguiente manera:
-
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)
Especifica las opciones mediante la definición de los resultados de la consulta de búsqueda.
-
Argumentos
- limit
El límite sobre el número de documentos que se muestran en los resultados.
- number_found_accuracy
El requisito de exactitud mínimo para
.SearchResults.number_found
. Si se configura, se mantiene exacto, al menos, hasta ese número. Por ejemplo, cuando se establece en 100, cualquier objetoSearchResults
connumber_found_accuracy
<= 100 es preciso.- cursor
Un cursor que describe dónde conseguir el siguiente conjunto de resultados o proporcionar los cursores siguientes en SearchResults.
- offset
La compensación representa el número de documentos que se omiten en los resultados de la búsqueda. Esta es una alternativa al uso del cursor de consulta. Permite acceso aleatorio a los resultados. Las compensaciones son más costosas (en cuanto a las horas de instancia) que los cursores. Puedes usar el cursor o la compensación, pero no ambos. Cuando usas la compensación, no se muestra ningún cursor en
ScoredDocument.cursor
oScoredDocument.cursor
.- sort_options
Un objeto
SortOptions
que especifica un orden multidimensional de los resultados de la búsqueda.- returned_fields
Un iterable de nombres de campos para mostrar en los resultados de la búsqueda.
- ids_only
Solo muestra ID de documentos, no muestra campos.
- snippeted_fields
Un iterable de nombres de campos para fragmentar y mostrar en las expresiones de los resultados de la búsqueda.
- returned_expressions
Un iterable de FieldExpression para evaluar y mostrar en los resultados de la búsqueda.
Valor del resultado
Una instancia nueva de la clase
QueryOptions
.
Excepciones
- TypeError
Si se pasan iterator_options o sort_options desconocidos.
- ValueError
Si
ids_only
yreturned_fields
se usan juntos.
Propiedades
Una instancia de la clase Query
tiene las siguientes propiedades:
- limit
Muestra un límite sobre el número de documentos para mostrar en los resultados.
- number_found_accuracy
Muestra un requisito de exactitud mínimo para SearchResults.number_found.
- cursor
Muestra el cursor para la consulta.
- offset
Muestra el número de documentos que se deben omitir en los resultados de la búsqueda.
- sort_options
Muestra un objeto SortOptions.
- returned_fields
Muestra un iterable de nombres de campos para mostrar en los resultados de la búsqueda.
- ids_only
Muestra solo
- snippeted_fields
Muestra un iterable de nombres de campo para fragmentar y mostrar en los resultados.
- returned_expressions
Muestra un iterable de FieldExpression para mostrar en los resultados.