本文介绍如何使用 OSS Java SDK V2 调用 QueryVectors 接口在指定向量索引(Index)中检索与查询向量最相似的向量数据。
权限说明
阿里云账号默认拥有全部权限。阿里云账号下的 RAM 用户或 RAM 角色默认没有任何权限,需要阿里云账号或账号管理员通过 RAM Policy 或 Bucket Policy 授予操作权限。
API | Action | 说明 |
QueryVectors | oss:QueryVectors | 检索(相似度查询)向量数据。 |
示例代码
import com.aliyun.sdk.service.oss2.credentials.CredentialsProvider;
import com.aliyun.sdk.service.oss2.credentials.EnvironmentVariableCredentialsProvider;
import com.aliyun.sdk.service.oss2.vectors.OSSVectorsClient;
import com.aliyun.sdk.service.oss2.vectors.models.QueryVectorsRequest;
import com.aliyun.sdk.service.oss2.vectors.models.QueryVectorsResult;
import java.util.*;
public class QueryVectorsSample {
public static void main(String[] args) throws Exception {
CredentialsProvider provider = new EnvironmentVariableCredentialsProvider();
try (OSSVectorsClient client = OSSVectorsClient.newBuilder()
.region("cn-hangzhou")
.accountId("1234567890")
.credentialsProvider(provider)
.build()) {
Map<String, Object> queryVector = new HashMap<>();
queryVector.put("float32", new float[]{0.1f, 0.2f, 0.3f});
QueryVectorsRequest request = QueryVectorsRequest.newBuilder()
.bucket("examplebucket")
.indexName("exampleindex")
.queryVector(queryVector)
.topK(10)
.returnDistance(true)
.returnMetadata(false)
.build();
QueryVectorsResult result = client.queryVectors(request);
System.out.printf("status code: %d, request id: %s%n", result.statusCode(), result.requestId());
}
}
}相关文档
同步示例代码,请参见 QueryVectors.java。
异步示例代码,请参见 QueryVectorsAsync.java。