This article describes how to use the OSS Java SDK V2 to call the QueryVectors API to retrieve vectors from a specified vector index most similar to a query vector.
Permissions
An Alibaba Cloud account has full permissions by default, while RAM users and RAM roles have none. The Alibaba Cloud account owner or an administrator must grant access using a RAM Policy or a Bucket Policy.
API | Action | Description |
QueryVectors | oss:QueryVectors | Retrieves vectors using a similarity query. |
Sample code
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());
}
}
}Related documents
For the synchronous code sample, see QueryVectors.java.
For the asynchronous code sample, see QueryVectorsAsync.java.
该文章对您有帮助吗?