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érminojob
en cualquier campo y también contiene la frasevery important
en un campotag
y una fecha desent
anterior al 28 de febrero de 2011.- options
La creación de la instancia de la clase
QueryOptions
con 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 ooptions
no es un objetoQueryOptions
.- 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.