A classe QueryOptions

A classe QueryOptions oferece opções para o pós-processamento dos resultados da consulta com base nas necessidades da sua aplicação. Constrói a classe como o options no argumento Query.options.

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

Introdução

A classe QueryOptions oferece opções para o pós-processamento dos resultados de uma consulta específica. As opções incluem a capacidade de ordenar os resultados, controlar os campos de documentos a devolver, produzir fragmentos de campos e calcular e ordenar por expressões de pontuação complexas.

Se quiser aceder aleatoriamente a páginas de resultados da pesquisa, pode usar um deslocamento:

from google.appengine.api import search
...
# get the first set of results
page_size = 10
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size))

# calculate pages
pages = results.number_found / page_size

# user chooses page and hence an offset into results
next_page = ith * page_size

# get the search results for that page
results = index.search(search.Query(query_string='some stuff',
    options=search.QueryOptions(limit=page_size, offset=next_page))

Por exemplo, o seguinte fragmento de código pede uma pesquisa de documentos em que first ocorre no campo subject e good ocorre em qualquer campo, devolvendo, no máximo, 20 documentos, pedindo o cursor para a página seguinte de resultados, devolvendo outro cursor para o conjunto seguinte de resultados, ordenando por assunto por ordem descendente, devolvendo os campos autor, assunto e resumo, bem como o conteúdo de um campo com fragmentos:

...
results = index.search(search.Query(
    query='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'])))

Construtor

O construtor da classe QueryOptions é definido da seguinte forma:

class QueryOptions(limit=20, number_found_accuracy=None, cursor=None, offset=None, sort_options=None, returned_fields=None, ids_only=False, snippeted_fields=None, returned_expressions=None)

Especifique opções que definem os resultados da consulta de pesquisa.

Argumentos

limit

O limite do número de documentos a devolver nos resultados.

number_found_accuracy

O requisito de precisão mínimo para SearchResults.number_found. Se estiver definido, permanece preciso até, pelo menos, esse número. Por exemplo, quando definido como 100, qualquer objeto SearchResults com number_found_accuracy <= 100 é preciso.

cursor

Um cursor que descreve onde obter o conjunto de resultados seguinte ou fornecer os cursores seguintes em SearchResults.

offset

O deslocamento representa o número de documentos a ignorar nos resultados da pesquisa. Esta é uma alternativa à utilização de um cursor de consulta. Permite o acesso aleatório aos resultados. Os deslocamentos são mais caros (em termos de horas de instância) do que os cursores. Pode usar o cursor ou o deslocamento, mas não ambos. A utilização de um deslocamento significa que não é devolvido nenhum cursor em ScoredDocument.cursor ou ScoredDocument.cursor.

sort_options

Um objeto SortOptions que especifica uma ordenação multidimensional nos resultados da pesquisa.

returned_fields

Um iterável de nomes de campos a devolver nos resultados da pesquisa.

ids_only

Devolve apenas IDs de documentos e não devolve campos.

snippeted_fields

Um iterável de nomes de campos para criar fragmentos e devolver em expressões de resultados da pesquisa.

returned_expressions

Um iterável de FieldExpression para avaliar e devolver nos resultados da pesquisa.

Valor do resultado

Uma nova instância da classe QueryOptions.

Exceções

TypeError

Se for transmitido um iterator_options ou um sort_options desconhecido.

ValueError

Se ids_only e returned_fields forem usados em conjunto.

Propriedades

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

limit

Devolve um limite do número de documentos a devolver nos resultados.

number_found_accuracy

Devolve o requisito de precisão mínimo para SearchResults.number_found.

cursor

Devolve o cursor para a consulta.

offset

Devolve o número de documentos nos resultados da pesquisa a ignorar.

sort_options

Devolve um objeto SortOptions.

returned_fields

Devolve um iterável de nomes de campos a devolver nos resultados da pesquisa.

ids_only

Devolve apenas nos resultados da pesquisa.

snippeted_fields

Devolve um iterável de nomes de campos para o fragmento e devolve-o nos resultados.

returned_expressions

Devolve um iterável de FieldExpression a devolver nos resultados.