Field
类是一个表示文档字段的抽象基类。该类不应直接进行实例化;而应使用表示特定数据类型的某个子类。
Field
在模块 google.appengine.api.search
中定义。
属性
Field
类的实例具有以下属性:
- name
字段的名称。必须以字母开头,只能包含字母、数字和下划线 (
_
),长度不能超过 500 个字符。- language
字段内容的双字母 ISO 693-1 语言代码,用于帮助实现词法单元化。例如,
en
表示该字段为英语。如果为None
,则将使用文档的语言代码。- value
字段的值。数据类型因特定子类而异。
子类
Field
类具有以下子类:
- class TextField
包含文本的字段。
字段的值必须是字符串或 Unicode 字符串。以下示例展示了一个名为
signature
且包含波兰语内容的文本字段:TextField(name='signature', value='brzydka pogoda', language='pl')
-
异常
- TypeError
提供的值不是文本字符串。
- ValueError
值超过最大允许长度。
- class HtmlField
包含 HTML 内容的字段。
字段的值必须是包含可搜索字段内容的字符串或 Unicode 字符串。以下示例显示了名为
content
的 HTML 字段:HtmlField(name='content', value='<html>herbata, kawa</html>', language='pl')
-
异常
- TypeError
提供的值不是文本字符串。
- ValueError
值超过最大允许长度。
- class AtomField
该字段中包含的文本将被视为不可分割的(原子化)词法单元,用于编入索引。
字段的值必须是被视为原子化词法单元的字符串或 Unicode 对象。以下示例显示名为
contributor
的一个 atom 字段:AtomField(name='contributor', value='foo@bar.com')
-
异常
- TypeError
提供的值不是文本字符串。
- ValueError
值超过最大允许长度。
- class NumberField
包含数值的字段。
字段的值必须是数字。以下示例展示了一个名为
size
且整数值为 10 的数字字段:NumberField(name='size', value=10)
异常
- TypeError
提供的值不是数字。
- class DateField
包含日期或日期时间值的字段。
字段的值必须是
datetime.date
或datetime.datetime
类型。 只能使用 Python“naive”日期和时间对象。不允许使用“Aware”对象。以下示例显示了名为creation_date
的日期字段,该字段表示 2011 年 3 月 21 日:DateField(name='creation_date', value=datetime.date(2011, 03, 21))
异常
- TypeError
提供的值不是
datetime.date
或datetime.datetime
。
- class GeoField
包含 GeoPoint 值的字段。
以下示例显示了一个名为
place
的 GeoField,表示纬度为 -33.84 度,经度为 151.26 度。GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))
异常
- TypeError
提供的值不是
GeoPoint
。