La clase Query

La clase Query representa una solicitud en el servicio de búsqueda para consultar el índice.

Query se define en el módulo google.appengine.api.search.

Introducción

La clase Query permite especificar una cadena de consulta y otras opciones, como el criterio de clasificación, el límite y un cursor para la búsqueda en un índice. Crea una instancia de la clase QueryOptions en el parámetro Query.options para configurar estas opciones.

Por ejemplo, el siguiente fragmento de código solicita que se busquen documentos en los que first aparezca en asunto y good aparezca en cualquier parte; esto muestra 20 documentos como máximo y un solo cursor de documento para los resultados, ordena por asunto en forma descendente, y muestra el autor, el asunto, los campos de resumen y contenido de campo fragmentado.

from google.appengine.api import search

...
results = index.search(search.Query(
    # Specify the query string using the Search API's Query language.
    query_string='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'])))
...

Tienes la opción de mostrar un cursor con cada conjunto de resultados de la búsqueda. Este cursor te permite desplazarte por los resultados de la búsqueda con mayor facilidad. Para obtener un Cursor, especifícalo en QueryOptions.cursor y extrae el cursor para la siguiente solicitud de SearchResults.cursor. Esto te permite continuar la búsqueda a partir del último documento encontrado, como se muestra a continuación:

...
results = index.search(
    search.Query(query_string='subject:first good',
          options=search.QueryOptions(cursor=results.cursor)))

Constructor

El constructor para la clase Query se define de la manera siguiente:

class Query(query_string, options=None, enable_facet_discovery=False, return_facets=None, facet_options=None, facet_refinements=None)

Solicita al servicio de búsqueda que consulte un índice, en el que se especifiquen los parámetros para esa consulta.

Argumentos

query_string

La consulta que permite la coincidencia respecto de los documentos del índice. Una consulta es una expresión booleana que contiene términos. Por ejemplo, la consulta job tag:"very important" sent < 2011-02-28 encuentra documentos con el término job en cualquier campo y también contiene la frase very important en un campo tag y una fecha de sent anterior al 28 de febrero de 2011.

options

La creación de la instancia de la clase QueryOptionscon instrucciones para el procesamiento posterior de los resultados de la búsqueda.

enable_facet_discovery

Habilita el descubrimiento de las facetas más relevantes utilizadas por los documentos que satisfacen esta consulta de búsqueda y muéstralos.

return_facets

Un iterable de FacetRequest o basestring como nombre de faceta para mostrar la faceta específica con el resultado.

facet_options

Una FacetOption que describe el procesamiento de las facetas.

facet_refinements

Un iterable de objetos FacetRefinement o strings de token de perfeccionamiento que se utilizan para filtrar los resultados de la búsqueda en función de un valor de faceta. El perfeccionamiento de la búsqueda de diferentes facetas se realiza en conjunción y el perfeccionamiento para la misma faceta se realiza en disyunción.

Valor del resultado

Una instancia nueva de la clase Query.

Excepciones

TypeError

Se genera cuando query_string no es una string o options no es un objeto QueryOptions.

ValueError

Se genera cuando no se pudo analizar query_string.

Propiedades

Una instancia de la clase Query tiene las propiedades siguientes:

query_string

Muestra la string de consulta que se buscará en esta solicitud.

options

Muestra los QueryOptions procesamiento posterior que define los resultados de la búsqueda.