Field Classes

Class Field is an abstract base class representing a field of a document. This class should not be directly instantiated; instead, use one of the subclasses representing specific data types.

Field is defined in the module google.appengine.api.search.

Properties

An instance of class Field has the following properties:

name

Name of the field. Must begin with a letter, contain only letters, digits, and underscores (_), and be no longer than 500 characters.

language

Two-letter ISO 693-1 language code for the field's content, to assist in tokenization. For example, en signifies that the field is English. If None, the language code of the document will be used.

value

Value of the field. Data type varies depending on the specific subclass.

Subclasses

Class Field has the following subclasses:

class TextField

A field containing text.

The field's value must be a string or Unicode string. The following example shows a text field named signature with Polish language content:

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

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class HtmlField

A field containing HTML content.

The field's value must be a string or Unicode string containing the searchable content of the field. The following example shows an HTML field named content:

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

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class AtomField

A field containing text to be treated as an indivisible (atomic) token for indexing purposes.

The field's value must be a string or Unicode object to be treated as an atomic token. The following example shows an atom field named contributor:

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

Exceptions

TypeError

Value supplied is not a text string.

ValueError

Value exceeds maximum allowable length.

class NumberField

A field containing a numeric value.

The field's value must be numeric. The following example shows a number field named size with integer value 10:

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

Exception

TypeError

Value supplied is not numeric.

class DateField

A field containing a date or datetime value.

The field's value must be of type datetime.date, or datetime.datetime. Only Python "naive" date and time objects can be used. "Aware" objects are not allowed. The following example shows a date field named creation_date representing the date 21 March 2011:

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

Exception

TypeError

Value supplied is not a datetime.date or a datetime.datetime.

class GeoField

A field containing a GeoPoint value.

The following example shows a GeoField named place representing a location at -33.84 degrees latitude and 151.26 degrees longitude:

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

Exception

TypeError

Value supplied is not a GeoPoint.