メインコンテンツまでスキップ
バージョン: User Guides (BYOC)

ロードとリリース

コレクションのロードは、コレクション内で類似検索およびクエリを実行するための前提条件です。このページでは、コレクションのロードおよびリリースの手順に焦点を当てます。

コレクションのロード

コレクションをロードする際、Zilliz Cloudはインデックスファイルおよびすべてのフィールドの生データをメモリにロードし、検索およびクエリに迅速に対応できるようにします。コレクションロード後に挿入されたエンティティは自動的にインデックス化およびロードされます。

以下のコードスニペットは、コレクションをロードする方法を示しています。

from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

# 7. コレクションをロード
client.load_collection(
collection_name="my_collection"
)

res = client.get_load_state(
collection_name="my_collection"
)

print(res)

# 出力
#
# {
# "state": "<LoadState: Loaded>"
# }

特定のフィールドのロード

Zilliz Cloudは検索およびクエリに関連するフィールドのみをロードできるため、メモリ使用量を削減し検索性能を向上させます。

以下のコードスニペットでは、my_collectionという名前のコレクションを作成し、コレクション内にmy_idmy_vectorという名前の2つのフィールドがあることを前提としています。

client.load_collection(
collection_name="my_collection",
load_fields=["my_id", "my_vector"] # 指定されたフィールドのみをロード
skip_load_dynamic_field=True # 動的フィールドのロードをスキップ
)

res = client.get_load_state(
collection_name="my_collection"
)

print(res)

# 出力
#
# {
# "state": "<LoadState: Loaded>"
# }

特定のフィールドをロードするように選択した場合、load_fieldsに含まれるフィールドのみが検索およびクエリのフィルタおよび出力フィールドとして使用できることに注意してください。常に主キー項目の名前と少なくとも1つのベクトルフィールドをload_fieldsに含める必要があります。

また、skip_load_dynamic_fieldを使用して動的フィールドをロードするかどうかを決定できます。動的フィールドは**$meta**という名前の予約JSONフィールドであり、スキーママで定義されていないすべてのフィールドとその値をキーバリュー形式で保存します。動的フィールドをロードする際、フィールド内のすべてのキーがロードされフィルタリングおよび出力に利用可能になります。動的フィールド内のすべてのキーがメタデータフィルタリングおよび出力に関与していない場合は、skip_load_dynamic_fieldTrueに設定します。

コレクションロード後にさらに多くのフィールドをロードするには、インデックス変更によるエラーを避けるために、まずコレクションをリリースする必要があります。

コレクションのリリース

検索およびクエリはメモリを多使用する操作です。コストを節約するため、現在使用していないコレクションをリリースすることをお勧めします。

以下のコードスニペットは、コレクションをリリースする方法を示しています。

# 8. コレクションをリリース
client.release_collection(
collection_name="my_collection"
)

res = client.get_load_state(
collection_name="my_collection"
)

print(res)

# 出力
#
# {
# "state": "<LoadState: NotLoad>"
# }