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
ではありません。