【ElasticSearch】文档(删除)单个和批量
1、单个删除文档
rest api
DELETE myindex/_doc/1
java client
DeleteRequest deleteRequest = new DeleteRequest(index, ElasticsearchConstants.INDEX_TYPE, id);
deleteRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
DeleteResponse deleteResponse = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
if (deleteResponse.getResult() == DocWriteResponse.Result.DELETED) {
log.debug(String.format("删除索引数据成功,index:%s,id:%s", index, id));
return true;
} else if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) {
log.error(String.format("删除索引数据,id不存在,index:%s,id:%s", index, id));
return true;
} else {
log.error(String.format("删除索引数据失败,index:%s,id:%s", index, id));
return false;
}
2、批量删除文档
rest api
POST myindex/_delete_by_query
{
"query": {
"bool": {
"must": [
{
"term": {
"name": {
"value": "Alice"
}
}
}
]
}
}
}
java client
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(QueryBuilders.termQuery("name", "Alice"));
DeleteByQueryRequest request = new DeleteByQueryRequest(index);
request.setConflicts("proceed");
request.setQuery(boolQueryBuilder);
BulkByScrollResponse bulkByScrollResponse = restHighLevelClient.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT);
List<BulkItemResponse.Failure> bulkFailures = bulkByScrollResponse.getBulkFailures();
for (BulkItemResponse.Failure bulkFailure : bulkFailures) {
System.out.println(bulkFailure.getMessage());
}

浙公网安备 33010602011771号