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

OpenSearch:複数クエリ

最終更新日:Dec 28, 2024

URL

/vector-service/multi-query

  • サンプル URL には、リクエストヘッダーやエンコード方式などの情報は含まれていません。

  • サンプル URL には、OpenSearch アプリケーションへの接続に使用するエンドポイントも含まれていません。

  • 上記の URL に連結されているすべてのリクエストパラメータの定義、使用方法、およびサンプル値の詳細については、このトピックの「リクエストパラメータ」セクションを参照してください。

プロトコル

HTTP

リクエストメソッド

POST

サポートされている形式

JSON

署名方式

次の方法を使用してリクエスト署名を計算できます。 リクエスト署名は authorization ヘッダーに格納されます。

パラメータ

タイプ

説明

accessUserName

string

ユーザー名。ユーザー名は、[インスタンスの詳細] ページの API エンドポイント セクションで確認できます。

accessPassWord

string

パスワード。パスワードは、[インスタンスの詳細] ページの API エンドポイント セクションで変更できます。

import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;

public class GenerateAuthorization {

 public static void main(String[] args) throws Exception {
 String accessUserName = "username";
 String accessPassWord = "password";
 String realmStr = "" + accessUserName + ":" + accessPassWord + "";
 String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
 System.out.println(authorization);
 }
}

authorization ヘッダーの値の有効な形式:

cm9vdDp******mdhbA==

HTTP リクエストで authorization ヘッダーを指定する場合は、Basic プレフィックスを追加する必要があります。

例:

authorization: Basic cm9vdDp******mdhbA==

リクエストパラメータ

  • SearchRequest

パラメータ

説明

デフォルト値

タイプ

必須

tableName

クエリ対象のテーブルの名前。

該当なし

string

はい

indexName

インデックス名。SearchRequest または各クエリでインデックス名を指定する必要があります。

該当なし

string

いいえ

queries

クエリのリスト。

該当なし

list[Query]

はい

topK

返される結果の数。

100

int

いいえ

includeVector

ドキュメントにベクトル情報を返すかどうかを指定します。

false

bool

いいえ

outputFields

返されるフィールド。

[]

list[string]

いいえ

order

結果をソートする順序。ASC は昇順を、DESC は降順を示します。

ASC

string

いいえ

filter

フィルター式。

""

string

いいえ

sort

ソート式。

""

string

いいえ

  • Query

パラメータ

説明

デフォルト値

タイプ

必須

indexName

インデックス名。SearchRequest または各クエリでインデックス名を指定する必要があります。

該当なし

string

いいえ

vector

クエリ対象のベクトルデータ。複数のベクトルをタイル化できます。

該当なし

list[float]

いいえ

vectorCount

vector パラメータで指定されたベクトルの数。

1

1

いいえ

topK

返される結果の数。

100

int

いいえ

namespace

ベクトルデータの名前空間。

""

string

いいえ

sparseData

クエリ対象のスパースベクトルデータ。

該当なし

SparseData

いいえ

weight

クエリの重み。

1.0

float

いいえ

searchParams

データをクエリするために使用されるパラメータ。

""

string

いいえ

scoreThreshold

結果をフィルタリングするために使用されるしきい値スコア。スコアがユークリッド距離の二乗である場合、ユークリッド距離の二乗が scoreThreshold パラメータの値よりも小さいドキュメントのみが返されます。スコアが内積である場合、内積が scoreThreshold パラメータの値よりも大きいドキュメントのみが返されます。

該当なし

float

いいえ

  • SparseData

パラメータ

説明

デフォルト値

タイプ

必須

count

各スパースベクトル内の要素の数。

スパースベクトルが 1 つだけ指定されている場合、このパラメータのデフォルト値はインデックスの数です。

list[int]

いいえ

indices

要素のインデックス (昇順)。

該当なし

list[int]

はい

values

インデックスと同じ順序の要素の値。

該当なし

list[float]

はい

レスポンスパラメータ

  • 返された結果

パラメータ

説明

タイプ

result

返された結果。

list[Item]

totalCount

結果の数。

int

totalTime

レスポンスタイム。単位: ミリ秒。

float

errorCode

リクエストが失敗した場合に返されるエラーコード。

int

errorMsg

リクエストが失敗した場合に返されるエラーメッセージ。

string

  • Item

パラメータ

説明

タイプ

score

ベクトルのスコア。

float

fields

フィールドと対応する値。

map<string, FieldType>

vector

ベクトル値。

list[float]

id

プライマリキー値。値は定義されたデータ型です。

Type

namespace

ベクトルの名前空間。このパラメータは、ベクトルに名前空間が設定されている場合に返されます。

string

複数の名前空間を使用したクエリ

リクエストの例:

{
    "tableName": "gist",
    "indexName": "vec_index",
    "queries": [
        {
            "vector": [
                0.1,
                0.2,
                0.3
            ],
            "namespace": "space_a"
        },
        {
            "vector": [
                0.4,
                0.5,
                0.6
            ],
            "namespace": "space_b"
        }
    ],
    "topK": 3,
    "includeVector": true
}

レスポンスの例:

{
    "result": [
        {
            "id": 1,
            "score": 1.0508723258972169,
            "vector": [
                0.1,
                0.2,
                0.3
            ],
            "namespace": "space_a"
        },
        {
            "id": 2,
            "score": 1.0329746007919312,
            "vector": [
                0.2,
                0.2,
                0.3
            ],
            "namespace": "space_b"
        },
        {
            "id": 3,
            "score": 0.980593204498291,
            "vector": [
                0.3,
                0.2,
                0.3
            ],
            "namespace": "space_a"
        }
    ],
    "totalCount": 3,
    "totalTime": 2.943
}

複数のインデックスを使用したハイブリッドクエリ

リクエストの例:

{
    "tableName": "gist",
    "queries": [
        {
            "indexName": "content_vec",
            "vector": [
                0.1,
                0.2,
                0.3
            ],
            "sparseData": {
                "count": [
                    3
                ],
                "indices": [
                    102,
                    405,
                    503
                ],
                "values": [
                    0.32,
                    0.94,
                    0.25
                ]
            },
            "weight": 0.7,
            "namespace": "space_a"
        },
        {
            "indexName": "title_vec",
            "vector": [
                0.4,
                0.5,
                0.6
            ],
            "sparseData": {
                "count": [
                    2
                ],
                "indices": [
                    203,
                    709
                ],
                "values": [
                    0.98,
                    0.08
                ]
            },
            "weight": 0.3,
            "namespace": "space_b"
        }
    ],
    "topK": 3,
    "includeVector": true
}