すべてのプロダクト
Search
ドキュメントセンター

DashVector:グループ化されたドキュメント検索

最終更新日:Jan 08, 2025

このトピックでは、HTTP API を使用してコレクション内でグループ化された類似性検索を実行する方法について説明します。

前提条件

  • クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。

  • API キーが取得されていること。詳細については、「API キーの管理」をご参照ください。

メソッドと URL

POST https://{Endpoint}/v1/collections/{CollectionName}/query_group_by

説明
  1. コードを正しく実行するには、サンプルコードの YOUR_API_KEY を実際の API キーに、YOUR_CLUSTER_ENDPOINT をクラスターのエンドポイントに置き換える必要があります。

  2. この例では、group_by_demo という名前のコレクションを使用します。このコレクションの詳細については、「グループ化されたベクトル検索」をご参照ください。

ベクトルを使用してグループ化された類似性検索を実行する

l -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "vector": [0.1, 0.2, 0.3, 0.4],
    "group_by_field": "document_id",
    "group_topk": 1,
    "group_count": 3,
    "include_vector": true
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query_group_by

サンプル出力は次のとおりです。

{
    "code": 0,
    "request_id": "d6df634a-683d-445e-abe0-d547091d6b3a",
    "message": "Success",
    "output": [
        {
            "docs": [
                {
                    "id": "4",
                    "vector": [
                        0.621783971786499,
                        0.5220040082931519,
                        0.8403469920158386,
                        0.995602011680603
                    ],
                    "fields": {
                        "document_id": "paper-02",
                        "content": "xxxD",
                        "chunk_id": 2
                    },
                    "score": 0.028402328
                }
            ],
            "group_id": "paper-02"
        },
        {
            "docs": [
                {
                    "id": "1",
                    "vector": [
                        0.26870301365852356,
                        0.8718249797821045,
                        0.6066280007362366,
                        0.6342290043830872
                    ],
                    "fields": {
                        "document_id": "paper-01",
                        "content": "xxxA",
                        "chunk_id": 1
                    },
                    "score": 0.08141637
                }
            ],
            "group_id": "paper-01"
        },
        {
            "docs": [
                {
                    "id": "6",
                    "vector": [
                        0.661965012550354,
                        0.730430006980896,
                        0.6105219721794128,
                        0.22164000570774078
                    ],
                    "fields": {
                        "document_id": "paper-03",
                        "content": "xxxF",
                        "chunk_id": 1
                    },
                    "score": 0.2513085
                }
            ],
            "group_id": "paper-03"
        }
    ]
}

プライマリキーに関連付けられたベクトルを使用してグループ化された類似性検索を実行する

curl -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "1",
    "group_by_field": "document_id",
    "group_topk": 1,
    "group_count": 3,
    "include_vector": true
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query_group_by

ベクトルまたはプライマリキーと条件付きフィルターを使用してグループ化された類似性検索を実行する

curl -XPOST \
  -H 'dashvector-auth-token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": "chunk_id > 1",
    "group_by_field": "document_id",
    "group_topk": 1,
    "group_count": 3,
    "include_vector": true
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query
  

密ベクトルと疎ベクトルの両方を使用してグループ化された検索を実行する

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},
    "group_by_field": "document_id",
    "group_topk": 1,
    "group_count": 3,
    "include_vector": true
  }' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query

リクエストパラメーター

説明

vector または id パラメーターを指定する必要があります。

パラメーター

場所

タイプ

必須

説明

{Endpoint}

path

str

はい

クラスターのエンドポイント。エンドポイントは、コンソールの クラスターの詳細 ページで確認できます。

{CollectionName}

path

str

はい

コレクションの名前。

dashvector-auth-token

header

str

はい

API キー。

group_by_field

body

str

はい

グループ化された検索を実行するフィールドの名前。スキーマフリーフィールドはサポートされていません。

group_count

body

int

いいえ

返されるグループの最大数。これはベストエフォートパラメーターです。一般的に、指定された数のグループが返されます。

group_topk

body

int

いいえ

グループごとに返される類似結果の数。これはベストエフォートパラメーターであり、group_count よりも優先順位が低くなります。

vector

body

array

いいえ

ベクトル。

sparse_vector

body

dict

いいえ

疎ベクトル。

id

body

str

いいえ

プライマリキー。プライマリキーに関連付けられたベクトルに基づいて類似性検索が実行されます。

filter

body

str

いいえ

条件付きフィルター。SQL WHERE 句の構文に準拠している必要があります。詳細については、「条件付きフィルタリング」をご参照ください。

include_vector

body

bool

いいえ

ベクトルを返すかどうかを指定します。デフォルト値:false。

output_fields

body

array

いいえ

返されるフィールドのリスト。デフォルトではすべてのフィールドが返されます。値が [] の場合、フィールドは返されません。

partition

body

str

いいえ

パーティションの名前。

レスポンスパラメーター

パラメーター

タイプ

説明

code

int

返されたステータスコード。詳細については、「ステータスコード」をご参照ください。

0

message

str

返されたメッセージ。

success

request_id

str

リクエストの一意の ID。

19215409-ea66-4db9-8764-26ce2eb5bb99

output

array

グループ化された類似結果。詳細については、「データ型」トピックの「グループ」セクションをご参照ください。