Field クラス

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