需求:
Java后端代码:
public R query(@RequestParam(name = "app_id") Long appId, @RequestParam(name = "channel_id") Long channelId, @RequestParam(name = "country") String country, @RequestParam(name = "date") String date){ SearchRequest searchRequest = new SearchRequest("peo_publisher_report"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (appId != null){ boolQuery.must(QueryBuilders.matchQuery("app_id", appId)); } if (channelId != null){ boolQuery.must(QueryBuilders.matchQuery("channel_id", channelId)); } if (country != null){ boolQuery.must(QueryBuilders.matchQuery("country", country)); } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); if (date != null){ try { boolQuery.must(QueryBuilders.rangeQuery("statistical_time").from(format.parse(date).getTime()).to(new Date().getTime())); } catch (ParseException e) { e.printStackTrace(); } } searchSourceBuilder.query(boolQuery); searchRequest.source(searchSourceBuilder); try { SearchResponse search = client.search(searchRequest, RequestOptions.DEFAULT); return R.ok().put("data",search.toString()); } catch (IOException e) { e.printStackTrace(); return R.error().put("error",e.getMessage()); } }
初学es,不知道怎么实现多条件查询,以此记录。
后期补上前端代码~~~~