ES高级用法:DeleteByQueryRequest
DeleteByQueryRequest
是 Elasticsearch 提供的一个功能,用于根据指定的查询条件删除文档。以下是一个使用 Java High Level REST Client 的示例代码:
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import java.io.IOException;
public class DeleteByQueryExample {
public static void main(String[] args) throws IOException {
try (RestHighLevelClient client = new RestHighLevelClient(...)) {
DeleteByQueryRequest request = new DeleteByQueryRequest("index_name"); // 替换为你的索引名
// 设置查询条件
request.setQuery(QueryBuilders.matchQuery("field_name", "value")); // 替换为你的字段名和值
// 可选:设置批量大小
request.setBatchSize(1000);
// 可选:设置超时时间
request.setTimeout(TimeValue.timeValueMinutes(2));
// 执行删除操作
client.deleteByQuery(request, RequestOptions.DEFAULT);
}
}
}
确保你已经设置了 Elasticsearch 的 RestHighLevelClient
,并替换了 index_name
和查询条件为你的索引名和具体条件。这段代码会删除所有匹配指定查询条件的文档。
评论已关闭