メインコンテンツまでスキップ

オンデマンド DQL 操作

Public Preview

コレクション内のオンデマンドコンピューティング向け DQL 操作(検索、クエリ、取得、ハイブリッド検索など)では、オンデマンドクラスターからコンピューティングリソースをアタッチする必要があります。Zilliz Cloud では、オンデマンドのコンピューティングニーズを満たすセッションを作成できます。

この記事では、プロジェクトエンドポイントを使用してデータベース内にコレクションを作成済みであることを前提としています。詳細は、外部コレクションの作成 を参照してください。

プロジェクトエンドポイントへの接続​

プロジェクトエンドポイントは、オンデマンドコンピューティングリソースへのアクセスを提供するように設計されています。これを使用して、オンデマンドクラスターとデータベースを管理し、コレクションに保存されたデータを操作できます。

次のコード例では、デフォルトデータベース内に my_collection という名前の外部コレクションがあることを前提としています。また、接続を確立する際は、十分な権限を持つ有効な API キーを常に使用してください。

python
client = MilvusClient(
uri="https://{project-id}.{region}.vectordb.zillizcloud.com",
token="YOUR_API_KEY"
)

client.has_collection(
collection_name="my_collection"
)

セッションの作成​

プロジェクトエンドポイントへの接続を確立したら、指定したオンデマンドクラスターからコンピューティングリソースをアタッチするセッションを作成します。

次の例では、ID が inxx-xxxxxxxxxxxxxxxxx のオンデマンドクラスターをすでに作成していることを前提としています。

Notes

RESTful リクエストの場合は、セッションを作成する代わりに、クラスター ID をクエリパラメーターとして DQL 呼び出しに渡してください。

python
session = client.session(
cluster_id="inxx-xxxxxxxxxxxxxxxxx"
)

DQL 操作の実行​

セッションの準備ができたら、検索を実行できます。次の例では、基本的なベクトル検索を例として使用しています。これは、クエリ、取得、ハイブリッド検索にも当てはまります。

python
query_vector = [0.3580376395471989, -0.6023495712049978, 0.18414012509913835, -0.26286205330961354, 0.9029438446296592]
res = session.search(
db_name="my_database",
collection_name="my_collection",
anns_field="vector",
data=[query_vector],
limit=3,
output_fields=["product_id", "title", "main_category", "price", "average_rating", "rating_number"]
)

セッションの終了​

オンデマンドのコンピューティングタスクが完了したら、セッションを終了できます。終了したセッションは、以降の DQL 操作には使用できません。

Notes

RESTful 呼び出しでは、これは必要ありません。

python
session.close()