Classe Query

A classe Query representa uma solicitação no serviço de pesquisa para consultar o índice.

Cuidado: **esta solução não é mais recomendada:** os apps que usam essa API executada somente no ambiente de execução do Python 2 e será necessário fazer upgrade para uma [solução recomendada](/appengine/docs/standard/python/migrate-to-python3/migrating-services#migration_paths_for_bundled_services) antes de migrar Ambiente de execução do Python 3.

Query é definido no módulo google.appengine.api.search.

Introdução

A classe Query permite especificar uma string de consulta e outras opções, como ordem de classificação, limite e um cursor, para uma pesquisa em um índice. Você define essas opções instanciando a classe QueryOptions para o parâmetro Query.options.

Por exemplo, o fragmento de código a seguir solicita uma pesquisa de documentos em que first ocorre no assunto e good ocorre em qualquer lugar, retornando, no máximo, 20 documentos, um cursor de documento único para os resultados, classificando por assunto em ordem decrescente, retornando os campos de autor, assunto e resumo, bem como um conteúdo de campo em formato de snippet.

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'])))
...

Você tem a opção de retornar um cursor com cada conjunto de resultados da pesquisa. Esse cursor permite percorrer mais facilmente os resultados da pesquisa. Para receber um Cursor, especifique-o em QueryOptions.cursor e extraia o cursor para a próxima solicitação de SearchResults.cursor. Isso permite continuar a pesquisa 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 maneira:

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

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

Argumentos

query_string

A consulta de correspondência para 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 frase very important em um campo tag e uma data sent anterior a 28 de fevereiro, 2011.

options

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

enable_facet_discovery

Ative a descoberta dos atributos mais relevantes usados pelos documentos que atendem a essa consulta de pesquisa e as retorna.

return_facets

Um iterável de FacetRequest ou basestring como o nome do atributo para retornar um atributo específico com o resultado.

facet_options

Uma FacetOption que descreve o processamento de atributos.

facet_refinements

Um iterável de objetos FacetRefinement ou strings de token de refinamento usado para filtrar os resultados da pesquisa com base em um valor de atributo. Os refinamentos de atributos diferentes serão em conjunção e os refinamentos para o mesmo atributo serão em disjunção.

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 o query_string não pode ser analisado.

Propriedades

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

query_string

Retorna a string de consulta a ser pesquisada nesta solicitação.

options

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