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-28busca documentos que contengan el términojoben cualquier campo, la frasevery importanten un campotagy una fechasentanterior al 28 de febrero del 2011.- opciones
Instanciación de la clase
QueryOptionscon 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_stringno es una cadena ooptionsno es un objetoQueryOptions.- ValueError
Se genera cuando no se puede analizar el
query_string.
Propiedades
Una instancia de la clase
Querytiene las siguientes propiedades:- query_string
Devuelve la cadena de consulta para buscar en esta solicitud.
- opciones
Devuelve el
QueryOptionsque define el posprocesamiento de los resultados de búsqueda.