La clase QueryOptions

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.

Precaución: **Esta solución ya no se recomienda:** Las apps que usan esta API solo pueden ejecutarse en el entorno de ejecución de Python 2 y deberán actualizarse a una [solución recomendada](/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) antes de migrar al entorno de ejecución de Python 3.

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 objeto SearchResults con number_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 o ScoredDocument.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 y returned_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 en los resultados de la búsqueda.

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.