add_collection_field()
この操作は、既存のコレクションを再作成することなく、新しいスカラーフィールドを追加します。内部スキーマ同期により、このフィールドは最小限の遅延でほぼ即座に利用可能になります。
コレクションで動的フィールドが有効になっている状態で、既存の動的フィールドのキーと同じ名前の静的フィールドを追加すると、静的フィールドがその動的フィールドのキーをマスクします。元の動的な値には、$meta['field_name'] 構文を使用して引き続きアクセスできます。
これは外部コレクションには適用されません。
リクエスト構文
add_collection_field(
collection_name: str,
timeout: Optional[float] = None,
**kwargs
)
パラメーター:
-
collection_name (string) –
[REQUIRED]
対象のコレクションの名前。
-
field_name (string) –
[REQUIRED]
新しいフィールドの名前。
-
data_type (DataType) –
[REQUIRED]
新しいフィールドのデータ型。サポートされている型については、DataType を参照してください。
-
desc (string, optional) –
フィールドの簡単な説明。
-
timeout (float) –
RPC リクエストのタイムアウト(秒)。
Noneの場合、この呼び出しは無期限に待機します。 -
kwargs (dict, optional) –
追加のパラメーターは以下のとおりです。
-
nullable (bool):
動的に追加されるフィールドでは、新しいフィールドの値を持たない既存のエンティティに対応するため、
Trueに設定する必要があります。 -
default_value (DataType-specific):
データ挿入時に値が指定されなかった場合に使用される、このフィールドのデフォルト値。
-
max_length (int):
DataType.VARCHARフィールドで必須です。文字列に許可される最大バイト長(1 ~ 65,535)を設定します。 -
element_type (DataType):
DataType.ARRAYフィールドで必須です。配列内の要素のデータ型を指定します。 -
max_capacity (int):
DataType.ARRAYフィールドで必須です。配列内の要素の最大数を定義します。
-
戻り値の型:
None
例外:
-
MilvusException
この操作中に何らかのエラーが発生した場合、この例外が送出されます。
例
Example 1: 基本的な nullable フィールドを追加する
client.add_collection_field(
collection_name="product_catalog",
field_name="created_timestamp",
data_type=DataType.INT64,
nullable=True # Required for added fields
)
Example 2: デフォルト値付きのフィールドを追加する
client.add_collection_field(
collection_name="product_catalog",
field_name="priority_level",
data_type=DataType.VARCHAR,
max_length=20,
nullable=True, # Required for added fields
default_value="standard" # Default value for existing entities
)