このトピックでは、HTTP API を使用してコレクション内で類似検索を実行する方法について説明します。
前提条件
クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。
APIキーが取得されていること。詳細については、「APIキーの管理」をご参照ください。
最新バージョンの SDK がインストールされていること。詳細については、「DashVector SDK のインストール」をご参照ください。
メソッドと URL
POST https://{Endpoint}/v1/collections/{CollectionName}/query例
コードを正しく実行するには、サンプルコード内の YOUR_API_KEY を実際の API キーに、YOUR_CLUSTER_ENDPOINT をクラスターのエンドポイントに置き換える必要があります。
quickstartという名前のコレクションを事前に作成する必要があります。詳細については、「コレクションの作成」トピックの「例」セクションをご参照ください。
ベクターを使用して類似検索を実行する
curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vector": [0.1, 0.2, 0.3, 0.4],
"topk": 10,
"include_vector": true
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/query
# example output: // 出力例
# {
# "code": 0,
# "request_id": "2cd1cac7-f1ee-4d15-82a8-b65e75d8fd13",
# "message": "Success",
# "output": [
# {
# "id": "1",
# "vector":[
# 0.10000000149011612,
# 0.20000000298023224,
# 0.30000001192092896,
# 0.4000000059604645
# ],
# "fields": {
# "name": "zhangshan",
# "weight": null,
# "age": 20,
# "anykey": "anyvalue"
# },
# "score": 0.3
# }
# ]
# }プライマリキーに関連付けられたベクターを使用して類似検索を実行する
curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"id": "1",
"topk": 1,
"include_vector": true
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/query
# example output: // 出力例
# {
# "code":0,
# "request_id":"fab4e8a2-15e4-4b55-816f-3b66b7a44962",
# "message":"Success",
# "output":[
# {
# "id":"1",
# "vector":[
# 0.10000000149011612,
# 0.20000000298023224,
# 0.30000001192092896,
# 0.4000000059604645
# ],
# "fields": {
# "name": "zhangshan",
# "weight": null,
# "age": 20,
# "anykey": "anyvalue"
# },
# "score": 0.3
# }
# ]
# }ベクターまたはプライマリキーと条件フィルターを使用して類似検索を実行する
curl -XPOST \
-H 'dashvector-auth-token: sk-YdC9WPy9DBJslHlC81u74hb8xHPRb33C1216835E211EEBCBC7A664A2F9815' \
-H 'Content-Type: application/json' \
-d '{
"filter": "age > 18",
"topk": 1,
"include_vector": true
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/query
# example output: // 出力例
# {
# "code":0,
# "request_id":"4c7331d8-fba1-4c3a-8673-124568670de7",
# "message":"Success",
# "output":[
# {
# "id":"1",
# "vector":[
# 0.10000000149011612,
# 0.20000000298023224,
# 0.30000001192092896,
# 0.4000000059604645
# ],
# "fields": {
# "name": "zhangshan",
# "weight": null,
# "age": 20,
# "anykey": "anyvalue"
# },
# "score": 0.0
# }
# ]
# }密ベクターと疎ベクターの両方を使用して類似検索を実行する
curl -XPOST \
-H 'dashvector-auth-token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vector": [0.1, 0.2, 0.3, 0.4],
"sparse_vector":{"1":0.4, "10000":0.6, "222222":0.8},
"topk": 1,
"include_vector": true
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/quickstart/query
# example output: // 出力例
# {
# "code":0,
# "request_id":"ad84f7a0-b4b2-4023-ae80-b6f092609a53",
# "message":"Success",
# "output":[
# {
# "id":"2",
# "vector":[
# 0.10000000149011612,
# 0.20000000298023224,
# 0.30000001192092896,
# 0.4000000059604645
# ],
# "fields":{"name":null,"weight":null,"age":null},
# "score":1.46,
# "sparse_vector":{
# "10000":0.6,
# "1":0.4,
# "222222":0.8
# }
# }
# ]
# }リクエストパラメーター
類似検索を実行するには、vector フィールドまたは id フィールドのいずれかを指定する必要があります。どちらも指定されていない場合、システムは条件フィルターのみを使用して一致クエリを実行します。
パラメーター | 場所 | タイプ | 必須 | 説明 |
{Endpoint} | パス | str | はい | クラスターのエンドポイント。エンドポイントは、コンソールの クラスターの詳細 ページで確認できます。 |
{CollectionName} | パス | str | はい | コレクションの名前。 |
dashvector-auth-token | ヘッダー | str | はい | API キー。 |
vector | 本文 | 配列 | いいえ | ベクター。 |
sparse_vector | 本文 | dict | いいえ | 疎ベクター。 |
id | 本文 | str | いいえ | プライマリキー。プライマリキーに関連付けられたベクターに基づいて類似検索が実行されます。 |
topk | 本文 | int | いいえ | 類似性によって返される上位結果の数。デフォルト値:10。 |
filter | 本文 | str | いいえ | 条件フィルター。SQL WHERE 句の構文に準拠している必要があります。詳細については、「条件付きフィルタリング」をご参照ください。 |
include_vector | 本文 | bool | いいえ | ベクターを返すかどうかを指定します。デフォルト値:false。 |
output_fields | 本文 | 配列 | いいえ | 返されるフィールドのリスト。デフォルトではすべてのフィールドが返されます。値が [] の場合、フィールドは返されません。 |
partition | 本文 | str | いいえ | パーティションの名前。 |
レスポンスパラメーター
パラメーター | タイプ | 説明 | 例 |
code | int | 返されたステータスコード。詳細については、「ステータスコード」をご参照ください。 | 0 |
message | str | 返されたメッセージ。 | success |
request_id | str | リクエストの一意の ID。 | 19215409-ea66-4db9-8764-26ce2eb5bb99 |
output | 配列 | 返される類似ドキュメント のリスト。 |