Field 類別

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.datedatetime.datetime 類型。僅限使用 Python 「原生」日期和時間物件。不允許使用「感知偵測」的物件。以下範例顯示名為 creation_date 的日期欄位,代表 2011 年 3 月 21 日的日期:

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

例外狀況

TypeError

提供的值不是 datetime.datedatetime.datetime

class GeoField

欄位包含 GeoPoint 值。

以下範例顯示名為 place 的地理欄位,代表經度 151.26 度和緯度 -33.84 度的地點:

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

例外狀況

TypeError

提供的值並非 GeoPoint