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

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

elasticsearch笔记(6) 删除文档delete-by-query

 

 在java中用索引删除

 

 1     @Test
 2     public void deletByQueryTest() throws IOException {
 3         //创建DeleteByQueryRequest对象
 4     String index = "sms-logs-index";
 5     String type = "sms-logs-type";
 6     DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index);
 7     deleteByQueryRequest.types(type);
 8    //指定删除条件
 9     RangeQueryBuilder fee = QueryBuilders.rangeQuery("fee").lt(20).gt(10);
10     deleteByQueryRequest.setQuery(fee);
11    //创建查询对象
12     HttpHost httpHost = new HttpHost("192.168.43.30", 9200);
13     RestClientBuilder restClientBuilder = RestClient.builder(httpHost);
14     RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
15     //执行删除
16     BulkByScrollResponse bulkByScrollResponse = restHighLevelClient.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT);
17     System.out.println(bulkByScrollResponse);
18 
19 }

 

相关文章:

  • 2023-03-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-12
  • 2022-12-23
  • 2021-09-14
  • 2022-01-09
  • 2021-06-29
相关资源
相似解决方案