Field クラスは、ドキュメントのフィールドを表す基本の抽象クラスです。このクラスを直接インスタンス化しないでください。代わりに、特定のデータタイプを表すサブクラスのいずれか一つを使用してください。
Field は、google.appengine.api.search モジュールで定義されます。
プロパティ
Field クラスのインスタンスには次のプロパティがあります。
- name
フィールドの名前。文字で始め、文字、数字、アンダースコア(
_)のみ使用できます。長さは 500 文字以下にする必要があります。- language
フィールド コンテンツ用の 2 文字の 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
数値を含むフィールド。
このフィールドの値は、数字でなければなりません。次の例は、整数値が 10 である
sizeという名前の数字フィールドを示しています。NumberField(name='size', value=10)
例外
- TypeError
指定された値が数字ではありません。
- class DateField
日付または日時の値を含むフィールド。
フィールドの値は、
datetime.dateまたはdatetime.datetime型にする必要があります。使用できるのは、Python ネイティブの日時オブジェクトだけです。"Aware" オブジェクトは使用できません。次の例は、2011 年 3 月 21 日を表すcreation_dateという名前の日付フィールドを示しています。DateField(name='creation_date', value=datetime.date(2011, 03, 21))
例外
- TypeError
指定された値が
datetime.dateまたはdatetime.datetimeではありません。
- class GeoField
GeoPoint 値を含むフィールド。
次の例は、緯度が -33.84 度で経度が 151.26 度の場所を表す
placeという名前の GeoField を示しています:GeoField(name='place', value=GeoPoint(latitude=-33.84, longitude=151.26))
例外
- TypeError
指定された値が
GeoPointではありません。