elasticsearch筆記(6) 刪除文檔delete-by-query


根據term, match等查詢方式去刪除大量的文檔.

ps:如果是大量的刪除,不推薦這個方式,太耗時了,因為是根據查詢的id一個一個刪除,而查詢本身也很消耗性能,推薦新建一個index,把保留的部分保留到新的index

 

 在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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM