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
的原子欄位: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 「原生」日期和時間物件。不允許使用「感知偵測」的物件。以下範例顯示名為creation_date
的日期欄位,代表 2011 年 3 月 21 日的日期:DateField(name='creation_date', value=datetime.date(2011, 03, 21))
例外狀況
- TypeError
提供的值不是
datetime.date
或datetime.datetime
。
- class GeoField
欄位包含 GeoPoint 值。
以下範例顯示名為
place
的地理欄位,代表經度 151.26 度和緯度 -33.84 度的地點:GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))
例外狀況
- TypeError
提供的值並非
GeoPoint
。