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,
en
indica che il campo è in inglese. SeNone
, 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
signature
con 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
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
odatetime.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 denominatocreation_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
odatetime.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
.