本文介紹如何通過Java SDK,根據id或id列表獲取Collection中已存在的Doc。
如果指定id不存在,則該id對應的Doc為空。
前提條件
已創建Cluster:創建Cluster。
已獲得API-KEY:API-KEY管理。
已安裝最新版SDK:安裝DashVector SDK。
接口定義
// class DashVectorCollection
// 同步接口
public Response<Map<String, Doc>> fetch(FetchDocRequest fetchDocRequest);
// 異步接口
public ListenableFuture<Response<Map<String, Doc>>> fetchAsync(FetchDocRequest fetchDocRequest);
使用示例
需要使用您的api-key替換示例中的YOUR_API_KEY、您的Cluster Endpoint替換示例中的YOUR_CLUSTER_ENDPOINT,代碼才能正常運行。
本示例需要參考新建Collection-使用示例提前創建好名稱為
quickstart
的Collection,并參考插入Doc提前插入部分數據。
import com.aliyun.dashvector.DashVectorClient;
import com.aliyun.dashvector.DashVectorCollection;
import com.aliyun.dashvector.common.DashVectorException;
import com.aliyun.dashvector.models.Doc;
import com.aliyun.dashvector.models.requests.FetchDocRequest;
import com.aliyun.dashvector.models.responses.Response;
import java.util.Map;
public class Main {
public static void main(String[] args) throws DashVectorException {
DashVectorClient client = new DashVectorClient("YOUR_API_KEY", "YOUR_CLUSTER_ENDPOINT");
DashVectorCollection collection = client.get("quickstart");
// 構建 FetchDocRequest
FetchDocRequest request = FetchDocRequest.builder()
.id("1")
.build();
// 發送獲取Doc請求
Response<Map<String, Doc>> response = collection.fetch(request);
System.out.println(response);
// example output:
// {
// "code":0,
// "message":"Success",
// "requestId":"489c5cda-3ffc-4171-b6e0-1837b932962b",
// "output":{
// "1":{
// "id":"1",
// "vector":{"value":[0.1,0.2,0.3,0.4]},
// "fields":{
// "name":"zhangsan",
// "age":20,
// "weight":100.0,
// "anykey1":"String",
// "anykey2":1,
// "anykey3":true,
// "anykey4":3.1415926
// },
// "score":0
// }
// }
// }
}
}
入參描述
通過FetchDocRequestBuilder
構造FetchDocRequest
對象,其可用方法如下表所示:
方法 | 必填 | 默認值 | 描述 |
ids(List<String> ids) | 是 | - | 文檔主鍵列表 |
id(String id) | 否 | - | |
partition(String partition) | 否 | default | 分區名稱 |
build() | - | - | 構造 |
出參描述
返回結果為Response<Map<String, Doc>>
對象,Response<Map<String, Doc>>
對象中可獲取本次操作結果信息,如下表所示。
方法 | 類型 | 描述 | 示例 |
getCode() | int | 返回值,參考返回狀態碼說明 | 0 |
getMessage() | String | 返回消息 | success |
getRequestId() | String | 請求唯一id | 19215409-ea66-4db9-8764-26ce2eb5bb99 |
getOutput() | Map<String, Doc> | key為主鍵,value為對應Doc的Map |
|
getUsage() | 對Serverless實例(按量付費)集合的Doc獲取請求,成功后返回實際消耗的讀請求單元數 | ||
isSuccess() | Boolean | 判斷請求是否成功 | true |