Classes de campo

A classe Field é uma classe base abstrata que representa um campo de um documento. Esta classe não deve ser instanciada diretamente. Em alternativa, use uma das subclasses que representam tipos de dados específicos.

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

Propriedades

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

name

Nome do campo. Tem de começar por uma letra, conter apenas letras, dígitos e sublinhados (_) e não ter mais de 500 carateres.

language

Código de idioma ISO 693-1 de duas letras para o conteúdo do campo, para ajudar na tokenização. Por exemplo, en significa que o campo está em inglês. Se None, é usado o código do idioma do documento.

valor

Valor do campo. O tipo de dados varia consoante a subclasse específica.

Subclasses

A classe Field tem as seguintes subclasses:

class TextField

Um campo que contém texto.

O valor do campo tem de ser uma string ou uma string Unicode. O exemplo seguinte mostra um campo de texto denominado signature com conteúdo em polaco:

TextField(name='signature', value='brzydka pogoda', language='pl')

Exceções

TypeError

O valor fornecido não é uma string de texto.

ValueError

O valor excede o comprimento máximo permitido.

class HtmlField

Um campo que contém conteúdo HTML.

O valor do campo tem de ser uma string ou uma string Unicode que contenha o conteúdo pesquisável do campo. O exemplo seguinte mostra um campo HTML denominado content:

HtmlField(name='content', value='<html>herbata, kawa</html>', language='pl')

Exceções

TypeError

O valor fornecido não é uma string de texto.

ValueError

O valor excede o comprimento máximo permitido.

class AtomField

Um campo que contém texto a ser tratado como um token indivisível (atómico) para fins de indexação.

O valor do campo tem de ser uma string ou um objeto Unicode para ser tratado como um token atómico. O exemplo seguinte mostra um campo atom denominado contributor:

AtomField(name='contributor', value='foo@bar.com')

Exceções

TypeError

O valor fornecido não é uma string de texto.

ValueError

O valor excede o comprimento máximo permitido.

class NumberField

Um campo que contém um valor numérico.

O valor do campo tem de ser numérico. O exemplo seguinte mostra um campo numérico denominado size com o valor inteiro 10:

NumberField(name='size', value=10)

Exceção

TypeError

O valor fornecido não é numérico.

class DateField

Um campo que contém um valor de data ou data/hora.

O valor do campo tem de ser do tipo datetime.date ou datetime.datetime. Só é possível usar objetos de data e hora"ingénuos" do Python . Não são permitidos objetos "Aware". O exemplo seguinte mostra um campo de data denominado creation_date que representa a data 21 de março de 2011:

DateField(name='creation_date', value=datetime.date(2011, 03, 21))

Exceção

TypeError

O valor fornecido não é um datetime.date nem um datetime.datetime.

class GeoField

Um campo que contém um valor GeoPoint.

O exemplo que se segue mostra um GeoField denominado place que representa uma localização a -33,84 graus de latitude e 151,26 graus de longitude:

GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))

Exceção

TypeError

O valor fornecido não é um GeoPoint.