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
}