Clase QueryOptions

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

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.