Classi dei campi

La classe Field è una classe base astratta che rappresenta un campo di un documento. Questa classe non deve creare un'istanza diretta; 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à:

nome

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

lingua

Codice lingua ISO 693-1 a due lettere per i contenuti del campo, per 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 in base alla sottoclasse specifica.

Sottoclassi

La classe Field ha le seguenti sottoclassi:

TextField class

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.

classe HtmlField

Un campo con contenuti HTML.

Il valore del campo deve essere una stringa o una stringa Unicode contenente i contenuti del campo disponibili per la ricerca. L'esempio seguente 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.

AtomField class

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

Il valore del campo deve essere una stringa o un oggetto Unicode per essere considerato come un token atomico. L'esempio seguente mostra un campo atom 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.

classe 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.

DateField class

Un campo contenente un valore di data o data/ora.

Il valore del campo deve essere di tipo datetime.date o datetime.datetime. Puoi utilizzare solo oggetti Python "naive" per data e ora. Gli oggetti "Aware" 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.

classe GeoField

Un campo contenente un valore GeoPoint.

L'esempio seguente mostra un campo geografico denominato place, che rappresenta una posizione 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.