本文介绍如何通过Java SDK,根据id或id列表删除Collection中已存在的Doc。
如果指定id不存在,则删除对应Doc的操作无效。
前提条件
已创建Cluster:创建Cluster。
已获得API-KEY:API-KEY管理。
已安装最新版SDK:安装DashVector SDK。
接口定义
// class DashVectorCollection
// 同步接口
public Response<List<DocOpResult>> delete(DeleteDocRequest deleteDocRequest);
// 异步接口
public ListenableFuture<Response<List<DocOpResult>>> deleteAsync(DeleteDocRequest deleteDocRequest);
使用示例
需要使用您的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.requests.DeleteDocRequest;
import com.aliyun.dashvector.models.responses.Response;
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");
// 构建 DeleteDocRequest
DeleteDocRequest request = DeleteDocRequest.builder()
.id("1")
.build();
// 发送删除Doc请求
Response<List<DocOpResult>> response = collection.delete(request);
}
}
入参描述
通过DeleteDocRequestBuilder
构造DeleteDocRequest
对象,其可用方法如下表所示:
方法 | 必填 | 默认值 | 描述 |
ids(List<String> ids) | 是 | - | 文档主键列表 |
id(String id) | 否 | - | |
partition(String partition) | 否 | default | 分区名称 |
deleteAll(Boolean deleteAll) | 否 | false | 是否清除分区内的全部数据。当传入 |
build() | - | - | 构造 |
出参描述
返回结果为Response<List<DocOpResult>>
对象,Response<List<DocOpResult>>
对象中可获取本次操作结果信息,如下表所示。
方法 | 类型 | 描述 | 示例 |
getCode() | int | 返回值,参考返回状态码说明 | 0 |
getMessage() | String | 返回消息 | success |
getRequestId() | String | 请求唯一id | 19215409-ea66-4db9-8764-26ce2eb5bb99 |
getOutput() | List<DocOpResult> | 返回删除的结果 | |
getUsage() | 对Serverless实例(按量付费)集合的Doc删除请求,成功后返回实际消耗的写请求单元数 | ||
isSuccess() | Boolean | 判断请求是否成功 | true |