La classe Field è una classe base astratta che rappresenta un campo di un documento. Questa classe non deve essere direttamente istanziata; 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, cifre e trattini bassi ( - _) e non deve superare i 500 caratteri.
- language
- Codice lingua ISO 693-1 di due lettere per i contenuti del campo, per facilitare la tokenizzazione. Ad esempio, - enindica che il campo è in inglese. Se- None, verrà utilizzato il codice lingua del documento.
- value
- Valore del campo. Il tipo di dati varia a seconda della sottoclasse specifica. 
Sottoclassi
La classe Field ha le seguenti sottoclassi:
- class 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 - signaturecon contenuti in polacco:- 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 contenente contenuti HTML. - Il valore del campo deve essere una stringa o una stringa Unicode contenente i contenuti del campo che possono essere sottoposti a ricerca. 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 il 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 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 - sizecon 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.dateo- datetime.datetime. È possibile utilizzare solo oggetti data e ora "naive" di Python. Gli oggetti "Aware" non sono consentiti. L'esempio seguente mostra un campo della data denominato- creation_dateche rappresenta la data 21 marzo 2011:- DateField(name='creation_date', value=datetime.date(2011, 03, 21)) 
- Eccezione - TypeError
- Il valore fornito non è - datetime.dateo- datetime.datetime.
 
- class GeoField
- Un campo contenente un valore GeoPoint. - L'esempio seguente mostra un campo geografico denominato - placeche 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.