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
le permite especificar una cadena de consulta y otras opciones, como el orden de clasificación, el límite y un cursor, para una búsqueda en un índice. Para definir estas opciones, crea una instancia de la clase QueryOptions
en el parámetro Query.options
.
Por ejemplo, el siguiente fragmento de código solicita una búsqueda de documentos en los que first
aparezca en el asunto y good
aparezca en cualquier parte. Devuelve un máximo de 20 documentos, un solo cursor de documento para los resultados, ordena los resultados por asunto en orden descendente y devuelve los campos de autor, asunto y resumen, así como el contenido de un campo con fragmentos.
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 devolver un cursor con cada conjunto de resultados de búsqueda. Este cursor te permite
desplazarte más fácilmente por los resultados de búsqueda. Para obtener un cursor, especifícalo en QueryOptions.cursor
y extrae el cursor de la siguiente solicitud de SearchResults.cursor
.
De esta forma, puedes continuar la búsqueda desde el último documento encontrado, tal 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 de la clase Query
se define de la siguiente manera:
-
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 y especifica los parámetros de esa consulta.
Argumentos
- query_string
La consulta para buscar coincidencias en 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
busca documentos que contengan el términojob
en cualquier campo, la frasevery important
en un campotag
y una fechasent
anterior al 28 de febrero del 2011.- opciones
Instanciación de la clase
QueryOptions
con instrucciones para posprocesar los resultados de búsqueda.- enable_facet_discovery
Habilita la detección de las facetas más relevantes que usan los documentos que cumplen esta consulta de búsqueda y devuélvelas.
- return_facets
Un iterable de FacetRequest o basestring como nombre de faceta para devolver una faceta específica con el resultado.
- facet_options
FacetOption que describe el procesamiento de las facetas.
- facet_refinements
Un iterable de objetos FacetRefinement o cadenas de tokens de refinamiento que se usan para filtrar los resultados de búsqueda en función de un valor de faceta. Las refinas de diferentes facetas serán conjunciones y las refinas de la misma faceta serán disyunciones.
Valor de resultado
Una nueva instancia de la clase
Query
.
Excepciones
- TypeError
Se genera cuando
query_string
no es una cadena ooptions
no es un objetoQueryOptions
.- ValueError
Se genera cuando no se puede analizar el
query_string
.
Propiedades
Una instancia de la clase
Query
tiene las siguientes propiedades:- query_string
Devuelve la cadena de consulta para buscar en esta solicitud.
- opciones
Devuelve el
QueryOptions
que define el posprocesamiento de los resultados de búsqueda.