java 操作elasticsearch 6.8.0 根据某个条件批量删除数据

这篇具有很好参考价值的文章主要介绍了java 操作elasticsearch 6.8.0 根据某个条件批量删除数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注: 连接es以及依赖相关内容请自行配置,只提供方法。

依赖如下
<dependency>
   <groupId>org.elasticsearch.client</groupId>
   <artifactId>elasticsearch-rest-high-level-client</artifactId>
   <version>6.8.0</version>
</dependency>
代码如下
@Autowired
private RestHighLevelClient elasticsearchClient;
public void deleteData() throws IOException {

    // 构建查询请求
    SearchRequest searchRequest = new SearchRequest("your_index_name"); // 替换为实际的索引名称
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
    sourceBuilder.query(QueryBuilders.termQuery("查询条件", "查询条件对应值"));
    sourceBuilder.size(100); // 设置每次查询的文档数量
    searchRequest.source(sourceBuilder);

    // 执行查询请求
    SearchResponse searchResponse = elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT);
    long totalHits = searchResponse.getHits().getTotalHits(); // 获取查询结果的总命中数

    // 批量删除
    int batchSize = 100; // 每批处理的文档数量
    for (int i = 0; i < totalHits; i += batchSize) {
        BulkRequest bulkRequest = new BulkRequest();
        for (SearchHit hit : searchResponse.getHits().getHits()) {
            String documentId = hit.getId();
            DeleteRequest deleteRequest = new DeleteRequest("your_index_name", "your_index_name_type", documentId); // 替换为实际的索引名称和文档类型
            bulkRequest.add(deleteRequest);
        }

        BulkResponse bulkResponse = elasticsearchClient.bulk(bulkRequest, RequestOptions.DEFAULT);

        // 处理删除结果
        if (bulkResponse.hasFailures()) {
            System.out.println("Failed to delete documents");
        } else {
            System.out.println("Delete documents successfully");
        }

        // 获取下一批文档
        if (i + batchSize < totalHits) {
            sourceBuilder.from(i + batchSize); // 设置下一批查询的起始位置
            searchRequest.source(sourceBuilder);
            searchResponse = elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT);
        }
    }

文章来源地址https://www.toymoban.com/news/detail-810867.html

到了这里,关于java 操作elasticsearch 6.8.0 根据某个条件批量删除数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch-JAVA-使用UpdateByQueryRequest进行条件批量修改

    最近项目中用到了 es 搜索引擎 ,需求用到了 根据条件修改es 的字段数据 ,网上查了很久 很多都是 查询出要修改的id 然后再根据id 进行单个修改 这样太费事了 又看了看 es 是有批量修改的语法的 Java api 就这样写 这样写 应该是有些缺陷的 但最总也实现了 类似于 sql 的 UPDA

    2024年02月11日
    浏览(48)
  • MySql Update修改(替换)某个字段中包含的某个值,根据条件修改替换某个字段的一部分值

    背景: 由于数据迁移和域名变更,Mysql中存储的文件下载地址变更; 要替换某一个字段中的部分内容,可以用update 语句和REPLACE方法,结构如下: UPDATE 表名 SET 字段名= REPLACE( 需要替换值的字段名, \\\'替换前\\\', \\\'替换后\\\' ) WHERE 字段名 REGEXP \\\"替换前的字段值\\\"; MySql U

    2024年02月05日
    浏览(39)
  • Terraform 系列-批量创建资源时如何根据某个字段判断是否创建

    Terraform 系列文章 Grafana 系列文章 前文 Grafana 系列 - Grafana Terraform Provider 基础 介绍了使用 Grafana Terraform Provider 创建 Datasource. 这几天碰到这么一个现实需求: 使用 Terraform 批量创建日志数据源时, 有的数据源类型是 ElasticSearch, 有些是 Opensearch. 那么, 如何根据某个字段(如: es_t

    2024年02月13日
    浏览(78)
  • linux 根据时间条件删除日志

    删除今天之间的日志文件 ===================================== 这个命令会在/path/to/log/files目录下查找所有扩展名为.log的文件,并检查它们的时间戳,如果时间戳超过7天,则删除这些文件。 配置crontab 表达式,每天凌晨两点执行

    2024年02月14日
    浏览(30)
  • HBase Java API 开发:批量操作 第2关:批量删除数据

    删除单行数据 删除一行数据很简单,我们来看个示例: 这段代码就可以删除行键为 row1 的行。 删除多行数据 如何删除多行数据呢? 相信你已经猜到了,既然 get() 方法有重载方法,那应该 delete() 方法也有,确实: 这样就可以删除多行数据啦。 编程要求 还等啥,亲自试一试

    2024年02月05日
    浏览(53)
  • java操作ElasticSearch之批量操作

    出现: 版本冲突、文档类型不对、JAR包与使用的API不一致或其他问题。都可参考以下连接。 ElasticSearch超级实用API描述 以上代码需要变动一下,将一些参数替换掉。

    2024年02月16日
    浏览(45)
  • Java根据id对elasticsearch查询操作

    一、根据一个id查询 二、根据多个ids查询

    2024年02月12日
    浏览(51)
  • Java API批量操作Elasticsearch

    @Test public void batchAddIndex() throws IOException { BulkRequestBuilder bulkRequest = client .prepareBulk(); bulkRequest.add( client .prepareIndex( “batch_test1” , “batch” , “1” ) .setSource( jsonBuilder () .startObject() .field( “user” , “lzq” ) .field( “postDate” , new Date()) .field( “message” , “trying out Elasticsearch”

    2024年04月09日
    浏览(43)
  • 3、HBase的java API基本操作(创建、删除表以及对数据的添加、删除、查询以及多条件查询)

    1、hbase-2.1.0介绍及分布式集群部署、HA集群部署、验证、硬件配置推荐 2、hbase-2.1.0 shell基本操作详解 3、HBase的java API基本操作(创建、删除表以及对数据的添加、删除、查询以及多条件查询) 4、HBase使用(namespace、数据分区、rowkey设计、原生api访问hbase) 5、Apache Phoenix(5.0.0-5.

    2024年02月08日
    浏览(60)
  • Linux[find命令]-根据路径和条件搜索指定文件并删除

    find命令:用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 基本语法格式:find pathname -options 搜索内容 [其他选项] pathname:用来指定搜索路径。 options:用来指定搜索内容。 搜索内容:用来指定搜索

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包