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

OpenSearch:スパースベクトルベースのクエリ

最終更新日:Mar 27, 2025

URL

/vector-service/query

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

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

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

プロトコル

HTTP

リクエストメソッド

POST

サポートされているフォーマット

JSON

リクエスト署名

次の表に示すパラメーターを使用して、リクエスト署名を計算できます。 リクエスト署名は、承認 ヘッダーに格納されます。

パラメーター

説明

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

密ベクトルインデックスの名前。

デフォルト値なし

string

はい

vector

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

デフォルト値なし

list[float]

はい

sparseData

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

デフォルト値なし

SparseData

はい

vectorCount

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

1

int

いいえ

namespace

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

""

string

いいえ

topK

返される結果の数。

100

int

いいえ

includeVector

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

false

bool

いいえ

outputFields

返されるフィールド。

[]

list[string]

いいえ

order

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

ASC

string

いいえ

searchParams

データのクエリに使用されるパラメーターです。

""

string

いいえ

filter

フィルター式。

""

string

いいえ

scoreThreshold

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

デフォルトでは、結果はフィルタリングされません。

float

いいえ

sort

ソート式。

""

string

いいえ

  • SparseData

パラメーター

説明

デフォルト値

必須

count

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

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

list[int]

いいえ

indices

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

デフォルト値なし

list[int]

はい

values

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

デフォルト値なし

list[float]

はい

OpenSearch Vector Search Edition では、2 つの独立した複数値フィールドを使用して、スパースベクトルの添え字と値を表します。 2 つのフィールドの値の数は同じである必要があります。 2 つのフィールドの値の位置は 1 対 1 で対応しています。

たとえば、スパースベクトル (0, 0.5), (100, 0.9), (40, 0.3), (50, 0.7), (20, 0.6) が存在するとします。 次のコードは、スパースベクトルの複数値フィールドを示しています。

{
  "indices": [0, 100, 40, 50, 20], // インデックス
  "values": [0.5, 0.9, 0.3, 0.7, 0.6] // 値
}

データを書き込んだりクエリしたりする場合、添え字は昇順に配置する必要があり、値は添え字に基づいて調整する必要があります。 次のコードは、調整された複数値フィールドを示しています。

{
  "indices": [0, 20, 40, 50, 100], // インデックス (昇順)
  "values": [0.5, 0.6, 0.3, 0.7, 0.9] // 調整された値
}

クエリの重み

ハイブリッドクエリでは、同じドキュメントの最終スコアは、密ベクトルの距離とスパースベクトルの距離の合計です。 スパースベクトルと密ベクトルに異なる重みを構成する場合は、次のコードに基づいて構成を実行できます。

{
    "vector": [v * weight for v in dense_vector], # 密ベクトルに重みを適用
    "sparseData": {
        "indices": sparse_data["indices"],
        "values": [v * (1 - weight) for v in sparse_data["values"]] # スパースベクトルに重みを適用
    }
}

リクエストの例

{
    "tableName": "in0",
    "indexName": "vector",
    "vector": [
        0.1,
        0.2,
        0.3,
        0.4,
        0.5
    ],
    "sparseData": {
        "indices": [
            0,
            2
        ],
        "values": [
            1.2,
            2.4
        ]
    },
    "topK": 2,
    "order": "DESC"
}

レスポンスパラメーター

パラメーター

説明

result

返された結果。

list[Item]

totalCount

結果の数。

int

totalTime

応答時間。 単位: ミリ秒。

float

errorCode

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

int

errorMsg

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

string

項目

パラメーター

説明

score

ベクトルのスコア。

float

fields

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

map<string, FieldType>

vector

ベクトルの値。

list[float]

id

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

FieldType

namespace

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

string

{
    "totalCount": 50,
    "result": [
        {
            "id": 99,
            "score": 0.18588095903396607,
            "__source__": 1, // ソース
            "fields": {
                "content": "Zhonghao Cat 6 Network Cable RJ45 Cat 6 Gigabit 8-Core Twisted Pair Jumper Broadband Monitoring Home Network Cable Finished Cable" // コンテンツ
            }
        }
    ],
    "totalTime": 4.057
}