La clase QueryOptions
ofrece opciones para posprocesar los resultados de las consultas en función de las necesidades de tu aplicación. La clase se construye como options
en el argumento Query.options.
Query
se define en el módulo google.appengine.api.search
.
Introducción
La clase QueryOptions
proporciona opciones para posprocesar los resultados de una consulta específica. Entre las opciones, se incluyen la posibilidad de ordenar los resultados, controlar qué campos de documento se devuelven, generar fragmentos de campos y calcular y ordenar por expresiones de puntuación complejas.
Si quieres acceder aleatoriamente a las páginas de resultados de búsqueda, puedes usar un desplazamiento:
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
se produce en el campo subject
y good
se produce en cualquier campo. Devuelve un máximo de 20 documentos, solicita el cursor de la siguiente página de resultados, devuelve otro cursor para el siguiente conjunto de resultados, ordena por asunto en orden descendente y devuelve los campos autor, asunto y resumen, así como el contenido de un campo con fragmentos:
... 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 de 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 que definen los resultados de la consulta de búsqueda.
-
Argumentos
- limit
Límite del número de documentos que se devolverán en los resultados.
- number_found_accuracy
El requisito de precisión mínimo de
SearchResults.number_found
. Si se define, sigue siendo precisa hasta ese número como mínimo. Por ejemplo, si se define en 100, cualquier objetoSearchResults
connumber_found_accuracy
<= 100 será preciso.- cursor
Un cursor que describe dónde obtener el siguiente conjunto de resultados o que proporciona los siguientes cursores en SearchResults.
- offset
El desplazamiento representa el número de documentos que se deben omitir en los resultados de búsqueda. Es una alternativa al uso de un cursor de consulta. Permite acceder a los resultados de forma aleatoria. Los desplazamientos son más caros (en términos de horas de instancia) que los cursores. Puedes usar el cursor o el desplazamiento, pero no ambos. Si se usa un desplazamiento, no se devuelve ningún cursor en
ScoredDocument.cursor
ni enScoredDocument.cursor
.- sort_options
Un objeto
SortOptions
que especifica una ordenación multidimensional de los resultados de búsqueda.- returned_fields
Un iterable de nombres de campos que se devolverán en los resultados de búsqueda.
- ids_only
Solo devuelve los IDs de los documentos, no devuelve ningún campo.
- snippeted_fields
Un iterable de nombres de campos que se van a incluir en el fragmento y devolver en expresiones de resultados de búsqueda.
- returned_expressions
Un iterable de FieldExpression para evaluar y devolver en los resultados de búsqueda.
Valor de resultado
Una nueva instancia de la clase
QueryOptions
.
Excepciones
- TypeError
Si se pasa un iterator_options o un sort_options desconocido.
- ValueError
Si se usan
ids_only
yreturned_fields
juntos.
Propiedades
Una instancia de la clase Query
tiene las siguientes propiedades:
- limit
Devuelve un límite en el número de documentos que se devolverán en los resultados.
- number_found_accuracy
Devuelve el requisito de precisión mínimo de SearchResults.number_found.
- cursor
Devuelve el cursor de la consulta.
- offset
Devuelve el número de documentos de los resultados de búsqueda que se deben omitir.
- sort_options
Devuelve un objeto SortOptions.
- returned_fields
Devuelve un iterable de nombres de campos que se devolverán en los resultados de búsqueda.
- ids_only
Solo devuelve
- snippeted_fields
Devuelve un iterable de nombres de campos al fragmento y lo devuelve en los resultados.
- returned_expressions
Devuelve un iterable de FieldExpression que se devolverá en los resultados.