Classi dei campi

La classe Field è una classe base astratta che rappresenta un campo di un documento. Questa classe non deve essere creata direttamente; utilizza invece una delle sottoclassi che rappresentano tipi di dati specifici.

Field è definito nel modulo google.appengine.api.search.

Proprietà

Un'istanza della classe Field ha le seguenti proprietà:

name

Nome del campo. Deve iniziare con una lettera, contenere solo lettere, numeri e trattini bassi (_) e non superare i 500 caratteri.

language

Codice lingua ISO 693-1 a due lettere per i contenuti del campo, al fine di facilitare la tokenizzazione. Ad esempio, en indica che il campo è in inglese. Se None, verrà utilizzato il codice lingua del documento.

valore

Valore del campo. Il tipo di dati varia a seconda della sottoclasse specifica.

Sottoclassi

La classe Field include le seguenti sottoclassi:

classe TextField

Un campo contenente testo.

Il valore del campo deve essere una stringa o una stringa Unicode. L'esempio seguente mostra un campo di testo denominato signature con contenuti in lingua polacca:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class HtmlField

Un campo con contenuti HTML.

Il valore del campo deve essere una stringa o una stringa Unicode contenente il contenuto disponibile per la ricerca del campo. Il seguente esempio mostra un campo HTML denominato content:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class AtomField

Un campo contenente testo da trattare come un token indivisibile (atomico) ai fini dell'indicizzazione.

Il valore del campo deve essere una stringa o un oggetto Unicode per essere considerato un token atomico. L'esempio seguente mostra un campo atomo denominato contributor:

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

Eccezioni

TypeError

Il valore fornito non è una stringa di testo.

ValueError

Il valore supera la lunghezza massima consentita.

class NumberField

Un campo contenente un valore numerico.

Il valore del campo deve essere numerico. L'esempio seguente mostra un campo numerico denominato size con valore intero 10:

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

Eccezione

TypeError

Il valore fornito non è numerico.

class DateField

Un campo contenente un valore data o data/ora.

Il valore del campo deve essere di tipo datetime.date o datetime.datetime. È possibile utilizzare solo oggetti data e ora "naive" di Python. "Consapevole" non sono consentiti. L'esempio seguente mostra un campo data denominato creation_date che rappresenta la data 21 marzo 2011:

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

Eccezione

TypeError

Il valore fornito non è datetime.date o datetime.datetime.

class GeoField

Un campo contenente un valore GeoPoint.

L'esempio seguente mostra un campo geografico denominato place che rappresenta una località a -33,84 gradi di latitudine e 151,26 gradi di longitudine:

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

Eccezione

TypeError

Il valore fornito non è un GeoPoint.