A classe de consulta

A classe Query representa um pedido no serviço de pesquisa para consultar o índice.

Query está definido no módulo google.appengine.api.search.

Introdução

A classe Query permite-lhe especificar uma string de consulta e outras opções, como a ordem de ordenação, o limite e um cursor, para uma pesquisa num índice. Define estas opções ao instanciar a classe QueryOptions para o parâmetro Query.options.

Por exemplo, o seguinte fragmento de código pede uma pesquisa de documentos em que first ocorre no assunto e good ocorre em qualquer lugar, devolvendo, no máximo, 20 documentos, devolvendo um único cursor de documento para os resultados, ordenando por assunto por ordem decrescente, devolvendo os campos de autor, assunto e resumo, bem como o conteúdo de um campo com 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'])))
...

Tem a opção de devolver um cursor com cada conjunto de resultados da pesquisa. Este cursor permite-lhe navegar mais facilmente pelas páginas dos resultados da pesquisa. Para obter um cursor, especifique-o em QueryOptions.cursor e extraia o cursor para o pedido seguinte de SearchResults.cursor. Isto permite-lhe continuar a pesquisa a partir do último documento encontrado, conforme mostrado abaixo:

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

Construtor

O construtor da classe Query é definido da seguinte forma:

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

Pedir ao serviço de pesquisa para consultar um índice, especificando parâmetros para essa consulta.

Argumentos

query_string

A consulta para fazer a correspondência com documentos no índice. Uma consulta é uma expressão booleana que contém termos. Por exemplo, a consulta job tag:"very important" sent < 2011-02-28 encontra documentos com o termo job em qualquer campo, e também contém a expressão very important num campo tag e uma data sent anterior a 28 de fevereiro de 2011.

options

Instanciação da classe QueryOptions com instruções para o pós-processamento dos resultados da pesquisa.

enable_facet_discovery

Ativar a descoberta das facetas mais relevantes usadas pelos documentos que satisfazem esta consulta de pesquisa e devolvê-las.

return_facets

Um iterável de FacetRequest ou basestring como nome da faceta para devolver uma faceta específica com o resultado.

facet_options

Um FacetOption que descreve o processamento de facetas.

facet_refinements

Um iterável de objetos FacetRefinement ou strings de tokens de refinamento usados para filtrar os resultados da pesquisa com base num valor de faceta. Os refinamentos para diferentes facetas são conjunções e os refinamentos para a mesma faceta são disjunções.

Valor do resultado

Uma nova instância da classe Query.

Exceções

TypeError

Gerado quando query_string não é uma string ou options não é um objeto QueryOptions.

ValueError

Gerado quando não foi possível analisar o query_string.

Propriedades

Uma instância da classe Query tem as seguintes propriedades:

query_string

Devolve a string de consulta para pesquisar neste pedido.

options

Devolve o QueryOptions que define o pós-processamento dos resultados da pesquisa.