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

オンデマンド DQL 操作

search、query、get、hybrid search など、オンデマンドコンピューティング向けの collections での DQL 操作では、オンデマンド cluster からのコンピュートリソースのアタッチが必要です。Zilliz Cloud では、オンデマンドのコンピュート要件を満たすためにセッションを作成できます。

この記事では、project endpoint を使用してデータベース内に collection を作成済みであることを前提としています。詳細については、外部 collection を作成する を参照してください。

project endpoint に接続する

project endpoint は、オンデマンドのコンピュートリソースへのアクセスを提供するように設計されています。これを使用して、オンデマンド cluster とデータベースを管理し、collections に保存されているデータを操作できます。

以下のコード例では、デフォルトデータベースに my_collection という名前の外部 collection が存在することを前提としています。また、接続を確立するには、十分な権限を持つ有効な API key を常に使用する必要があります。

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

client.has_collection(
collection_name="my_collection"
)

セッションを作成する

project endpoint への接続を設定したら、指定したオンデマンド cluster からコンピュートリソースをアタッチするためのセッションを作成します。

以下の例では、ID が inxx-xxxxxxxxxxxxxxxxx のオンデマンド cluster をすでに作成済みであることを前提としています。

📘注意

RESTful リクエストでは、セッションを作成する代わりに、DQL 呼び出しに cluster ID をクエリパラメータとして渡す必要があります。

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

DQL 操作を実行する

セッションの準備ができたら、search を実行できます。以下の例では、基本的な vector search を例として使用しています。これは query、get、hybrid search にも当てはまります。

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 操作には使用できません。

📘注意

RESTful 呼び出しでは、これは不要です。

python
session.close()
Ctrl I