赞
踩
1.mapper开发
在项目目录“/src/main/java/com/example/es”的EmployeeMapper类中新增删除员工接口,具体代码如下。
@EasyMapper(indices = "employee", clusterRouter = "sampleCluster") public interface EmployeeMapper { /** * 删除员工 * * @param id 员工文档id * @return 删除成功,返回true */ @Delete Boolean deleteEmployeeBoolean(String id); /** * 删除员工 * * @param id 员工文档id */ @Delete void deleteEmployeeVoid(String id); /** * 删除员工 * * @param employeeEntity 员工 * @return RestStatus */ @Delete RestStatus deleteEmployee(EmployeeEntity employeeEntity); /** * 删除员工 * * @param id 员工文档id * @return DeleteResponse */ @Delete DeleteResponse deleteEmployeeDeleteResponse(String id); /** * 删除员工 * * @param id 员工文档id * @return RestStatus */ @Delete RestStatus deleteEmployee(String id); /** * 异步删除员工 * * @param id 员工文档id * @return 异步结果 */ @Delete CompletableFuture<Boolean> deleteEmployeeBooleanFuture(String id); /** * 异步删除员工 * * @param id 员工文档id * @return 异步结果 */ @Delete CompletableFuture<Void> deleteEmployeeVoidFuture(String id); }
2.controller开发
在项目目录“/src/main/java/com/example/es”下的EmployeeController类中新增删除员工接口,以deleteEmployee接口为例演示开发步骤,具体代码如下。
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Resource
private EmployeeMapper employeeMapper;
@ResponseBody
@RequestMapping(value = "/deleteEmployee", method = RequestMethod.DELETE)
public RestStatus deleteEmployee(@RequestParam String id) {
return employeeMapper.deleteEmployee(id);
}
}
3.测试
(1).文档id存在
启动项目,然后在postman中请求“http://localhost:8080/employee/deleteEmployee?id=10000009”,返回请求执行结果。
"OK"
(2).文档id不存在
启动项目,然后在postman中请求“http://localhost:8080/employee/deleteEmployee?id=10000008”,返回请求执行结果。
"NOT_FOUND"
4.@Delete属性说明
序号 | 属性名 | 默认值 | 说明 |
---|---|---|---|
1 | waitForActiveShards | -2 | 活动分片数量,-2时不指定分片数量,-1或all指定全部分片 |
2 | timeout | 1m | 数值+时间单位(ms/s/m/h/M/y) |
3 | refreshPolicy | RefreshPolicy.NONE | 默认不刷新 |
5.批量删除
(1).mapper开发
在项目目录“/src/main/java/com/example/es”的EmployeeMapper类中新增批量删除员工接口,具体代码如下。
@EasyMapper(indices = "employee", clusterRouter = "sampleCluster") public interface EmployeeMapper { /** * 批量删除员工 * * @param ids 员工文档id * @return 响应 */ @Bulk(bulkType = BulkType.DELETE) List<BulkItemResponse> bulkDeleteEmployeeList(String... ids); /** * 批量删除员工 * * @param employeeEntityList 员工 * @return 响应 */ @Bulk(bulkType = BulkType.DELETE) List<BulkItemResponse> bulkDeleteEmployeeList(List<EmployeeEntity> employeeEntityList); }
(2).controller开发
在项目目录“/src/main/java/com/example/es”下的EmployeeController类中新增批量删除员工接口,以接口bulkDeleteEmployeeList为例演示开发步骤,具体代码如下。
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Resource
private EmployeeMapper employeeMapper;
@ResponseBody
@RequestMapping(value = "/bulkDeleteEmployeeList", method = RequestMethod.DELETE)
public List<BulkItemResponse> bulkDeleteEmployeeList(@RequestBody List<EmployeeEntity> employeeConditionList) {
return employeeMapper.bulkDeleteEmployeeList(employeeConditionList);
}
}
(3).测试
启动项目,然后在postman中请求“http://localhost:8080/employee/bulkDeleteEmployeeList”,成功后返回对应的信息。
[ { "id": "10000011", "employeeId": 10000011, "name": "Stephen Curry", "job": "Java engineer", "age": 27, "salary": 20000.00, "birthday": "1995-08-06" }, { "id": "10000012", "employeeId": 10000012, "name": "Stephen Curry", "job": "Java engineer", "age": 27, "salary": 20000.00, "birthday": "1995-08-06" } ]
[ { "id": "10000011", "opType": "DELETE", "response": { "shardInfo": { "total": 2, "successful": 1, "failures": [], "failed": 0, "fragment": false }, "shardId": { "index": { "name": "employee", "uuid": "_na_", "fragment": false }, "id": -1, "indexName": "employee", "fragment": true }, "id": "10000011", "type": "_doc", "version": 2, "seqNo": 5, "primaryTerm": 1, "result": "DELETED", "index": "employee", "fragment": false }, "failure": null, "type": "_doc", "index": "employee", "version": 2, "failed": false, "itemId": 0, "failureMessage": null, "fragment": false }, { "id": "10000012", "opType": "DELETE", "response": { "shardInfo": { "total": 2, "successful": 1, "failures": [], "failed": 0, "fragment": false }, "shardId": { "index": { "name": "employee", "uuid": "_na_", "fragment": false }, "id": -1, "indexName": "employee", "fragment": true }, "id": "10000012", "type": "_doc", "version": 2, "seqNo": 5, "primaryTerm": 1, "result": "DELETED", "index": "employee", "fragment": false }, "failure": null, "type": "_doc", "index": "employee", "version": 2, "failed": false, "itemId": 1, "failureMessage": null, "fragment": false } ]
6.条件删除
(1).mapper开发
在项目目录“/src/main/java/com/example/es”的EmployeeMapper类中新增条件删除员工接口,具体代码如下。
@EasyMapper(indices = "employee", clusterRouter = "sampleCluster") public interface EmployeeMapper { /** * 根据指定条件删除员工 * * @param employeeCondition 查询条件 * @return 查询删除响应 */ @DeleteByQuery BulkByScrollResponse deleteByQueryEmployee(EmployeeCondition employeeCondition); /** * 根据指定条件删除员工 * * @param employeeCondition 查询条件 * @return 异步查询删除响应 */ @DeleteByQuery CompletableFuture<BulkByScrollResponse> deleteByQueryEmployeeFuture(EmployeeCondition employeeCondition); }
(2).controller开发
在项目目录“/src/main/java/com/example/es”下的EmployeeController类中新增条件删除员工接口,以接口deleteByQueryEmployee为例演示开发步骤,具体代码如下。
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Resource
private EmployeeMapper employeeMapper;
@ResponseBody
@RequestMapping(value = "/deleteByQueryEmployee", method = RequestMethod.DELETE)
public BulkByScrollResponse deleteByQueryEmployee(@RequestBody EmployeeCondition employeeCondition) {
return employeeMapper.deleteByQueryEmployee(employeeCondition);
}
}
(3).测试
启动项目,然后在postman中请求“http://localhost:8080/employee/deleteByQueryEmployee”,删除岗位为"Java engineer"并且薪水为29000的文档,成功后返回对应的信息。
{
"job": "Java engineer",
"salary": 29000.00
}
{ "took": { "hours": 0, "minutes": 0, "seconds": 0, "millis": 18, "nanos": 18000000, "days": 0, "minutesFrac": 3.0E-4, "hoursFrac": 5.0E-6, "secondsFrac": 0.018, "microsFrac": 18000.0, "micros": 18000, "daysFrac": 2.0833333333333333E-7, "millisFrac": 18.0, "stringRep": "18ms" }, "status": { "total": 1, "updated": 0, "created": 0, "deleted": 1, "batches": 1, "versionConflicts": 0, "noops": 0, "bulkRetries": 0, "searchRetries": 0, "throttled": { "hours": 0, "minutes": 0, "seconds": 0, "millis": 0, "nanos": 0, "days": 0, "minutesFrac": 0.0, "hoursFrac": 0.0, "secondsFrac": 0.0, "microsFrac": 0.0, "micros": 0, "daysFrac": 0.0, "millisFrac": 0.0, "stringRep": "0ms" }, "requestsPerSecond": "Infinity", "reasonCancelled": null, "throttledUntil": { "hours": 0, "minutes": 0, "seconds": 0, "millis": 0, "nanos": 0, "days": 0, "minutesFrac": 0.0, "hoursFrac": 0.0, "secondsFrac": 0.0, "microsFrac": 0.0, "micros": 0, "daysFrac": 0.0, "millisFrac": 0.0, "stringRep": "0ms" }, "sliceStatuses": [], "writeableName": "bulk-by-scroll", "fragment": false, "successfullyProcessed": 1 }, "bulkFailures": [], "searchFailures": [], "timedOut": false, "total": 1, "bulkRetries": 0, "created": 0, "deleted": 1, "updated": 0, "batches": 1, "noops": 0, "reasonCancelled": null, "versionConflicts": 0, "searchRetries": 0, "fragment": true }
(4).@DeleteByQuery属性说明
序号 | 属性名 | 默认值 | 说明 |
---|---|---|---|
1 | routing | 可选 | 默认无路由 |
2 | waitForActiveShards | -2 | 活动分片数量,-2时不指定分片数量,-1或all指定全部分片 |
3 | timeout | 1m | 数值+时间单位(ms/s/m/h/M/y) |
4 | refresh | false | |
5 | maxDocs | -1 | 最大处理文档数,超过此文档数量,就不在处理。默认-1,是全部文档 |
6 | batchSize | 1000 | 批量大小 |
7 | conflicts | abort | 冲突策略:abort/procced |
8 | slices | 1 | 分片 |
9 | maxRetries | 11 | 冲突后,最大重试次数 |
10 | shouldStoreResult | false | |
11 | scrollKeepAlive | 0 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。