【无标题】

elasticsearch条件删除数据delete-by-query

根据term, match等查询方式去删除大量的文档.

ps:如果是大量的删除,不推荐这个方式,太耗时了,因为是根据查询的id一个一个删除,而查询本身也很消耗性能,推荐新建一个index,把保留的部分保留到新的index

curl -X POST "http://localhost:9200/wk_single_expense/_delete_by_query" -H 'Content-Type: application/json' -d'
{
  "query": { 
    "range": {
      "expenseId": {
        "gte": 502,
        "lte":519
      }
    }
  }
}
'

在java中用索引删除

@Test
     public void deletByQueryTest() throws IOException {
         //创建DeleteByQueryRequest对象
     String index = "sms-logs-index";
     String type = "sms-logs-type";
     DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index);
     deleteByQueryRequest.types(type);
    //指定删除条件
     RangeQueryBuilder fee = QueryBuilders.rangeQuery("fee").lt(20).gt(10);
     deleteByQueryRequest.setQuery(fee);
    //创建查询对象
     HttpHost httpHost = new HttpHost("192.168.43.30", 9200);
     RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
     RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
     //执行删除
     BulkByScrollResponse bulkByScrollResponse = restHighLevelClient.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT);
     System.out.println(bulkByScrollResponse);
 
 }

http://t.zoukankan.com/dangdanghepingping-p-14415277.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值