Java里 es 多条件删除的公用方法
时间: 2024-03-17 20:41:41 浏览: 212
可以使用 Elasticsearch 的 Delete By Query API 来实现多条件删除。以下是一个示例代码:
```java
DeleteByQueryRequest request = new DeleteByQueryRequest("index_name");
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("field1", "value1"))
.must(QueryBuilders.termQuery("field2", "value2"));
request.setQuery(queryBuilder);
BulkByScrollResponse response = client.deleteByQuery(request, RequestOptions.DEFAULT);
long deletedCount = response.getDeleted();
```
其中,`index_name` 是要删除文档的索引名称,`field1` 和 `field2` 是要匹配的字段名,`value1` 和 `value2` 是要匹配的值。可以根据实际需求修改查询条件。
使用 `DeleteByQueryRequest` 构建查询请求,然后使用 `QueryBuilder` 构建查询条件。最后,使用 `deleteByQuery` 方法执行删除操作,并获取删除文档的数量。
需要注意的是,使用 Delete By Query API 进行删除操作可能会对性能产生影响,因此应该谨慎使用。另外,Elasticsearch 的版本也会影响 API 的使用方式,上述代码示例适用于 Elasticsearch 7.x 版本。
阅读全文