天天看點

五分鐘帶你玩轉Elasticsearch(十九)企業實戰——ElasticTemplate删除時間段内的資料

@ApiOperation(value = "清除詳細日志接口", notes = "清除詳細日志接口")
    @PostMapping("/clearDetailLog")
    public void clearDetailLog(@ApiParam(name = "清除詳細日志接口輸入參數實體", value = "清除詳細日志接口輸入參數實體",
        required = false) @RequestBody HandleDetailLogVO handleDetailLogVO) throws IOException, ParseException {
        SimpleDateFormat sd = new SimpleDateFormat(DateFormatEnum.YYYY_MM_DD_HH_MM_SS.getFormat());
        String beginTime = handleDetailLogVO.getBeginTime() + DateFormatEnum.BEGIN_HH_MM_SS.getFormat();
        String endTime = handleDetailLogVO.getEndTime() + DateFormatEnum.END_HH_MM_SS.getFormat();
        // 根據時間查詢
        NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();
        BoolQueryBuilder bool = QueryBuilders.boolQuery();
        List<QueryBuilder> filters = bool.filter();
        filters.add(QueryBuilders.rangeQuery("time").gte(sd.parse(beginTime)) .lte(sd.parse(endTime)));
        builder.withQuery(bool);
        NativeSearchQuery query = builder.build();
        IndexCoordinates indexCoordinates = IndexCoordinates.of("datalog-*");
        // 删除索引
        elasticsearchTemplate.delete(query, DetailLogVO.class, indexCoordinates);
    }      

實體

public class HandleDetailLogVO {
 
        /**
         * 結束時間
         */
        @ApiModelProperty(value = "結束時間", name = "結束時間")
        private String endTime;
 
        /**
         * 開始時間
         */
        @ApiModelProperty(value = "開始時間", name = "開始時間")
        private String beginTime;
}      

繼續閱讀