ベクトル類似検索を実行するには、query-vectors コマンドを使用します。
権限
デフォルトでは、Alibaba Cloud アカウント (root ユーザー) はすべての権限を持ちますが、RAM ユーザーおよび RAM ロールには権限がありません。アカウントオーナーまたは管理者が、RAM ポリシーまたはバケットポリシーを使用して権限を付与する必要があります。
API | アクション | 説明 |
QueryVectors |
| ベクトルデータを照会します。 |
コマンド形式
ossutil vectors-api query-vectors --bucket value --index-name value --query-vector value --top-k value [flags]パラメーター
パラメーター | タイプ | 説明 |
--bucket | string | ベクターバケットの名前です。 |
--index-name | string | インデックス名です。 |
--query-vector | string | JSON 形式のクエリベクターです。ディメンションはベクトルインデックスのディメンションと同じである必要があります。 |
--top-k | int | 返される最も類似したベクターの数です。有効な値:1~100。 |
--filter | string | メタデータに基づいてクエリ結果をフィルター処理します。
|
--return-distance | / | このパラメーターを空にするか、 |
--return-metadata | / | メタデータを返すかどうかを指定します。このパラメーターを指定しない場合や |
query-vectors コマンドは、QueryVectors API オペレーションに対応しています。
サポートされているグローバルコマンドラインオプションについては、「グローバルコマンドラインオプション」をご参照ください。
フィルターオペレーター
オペレーター | タイプ | 説明 |
| 文字列 | 単一の値と一致します。メタデータフィールドが配列の場合、その配列内の任意の要素と一致します。 |
| 文字列 | 等しくないことを示します。 |
| 文字列配列 | 配列内の任意の値と一致します(SQL の |
| 文字列配列 | 配列内のどの値とも一致しません(SQL の |
| ブール値 | メタデータキーが存在するかどうかを確認します。 |
| フィルターの空でない配列 | 2 つ以上のフィルター式に対して論理 AND 演算を実行します。 |
| フィルターの空でない配列 | 2 つ以上のフィルター式に対して論理 OR 演算を実行します。 |
使用例
この例では、クエリベクターと最も類似した上位 10 件のベクターを検索します。検索対象は、ベクターバケット「examplebucket」内のベクターインデックス「index」であり、「comedy」と「documentary」のタイプを持つベクターに絞り込みます。
ossutil vectors-api query-vectors --bucket examplebucket --index-name index --filter "{\"$and\":[{\"type\":{\"$in\":[\"comedy\",\"documentary\"]}}]}" --query-vector "{\"float32\":[32]}" --top-k 10