From 251c9a04a56fe5856d785243d3a35f40024e98d4 Mon Sep 17 00:00:00 2001 From: "1049970895@qniao.cn" <1049970895> Date: Tue, 16 Aug 2022 14:02:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/Demo1.java | 14 +++++ .../src/test/java/DemoTes.java | 51 ++++++++++++++++--- 2 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 iot-machine-state-event-generator-job/src/test/java/Demo1.java diff --git a/iot-machine-state-event-generator-job/src/test/java/Demo1.java b/iot-machine-state-event-generator-job/src/test/java/Demo1.java new file mode 100644 index 0000000..5bd96c7 --- /dev/null +++ b/iot-machine-state-event-generator-job/src/test/java/Demo1.java @@ -0,0 +1,14 @@ +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; + +public class Demo1 { + + public static void main(String[] args) { + + long l = LocalDate.now().plus(-1, ChronoUnit.DAYS).atTime(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + System.out.println(l); + } +} diff --git a/iot-machine-state-event-generator-job/src/test/java/DemoTes.java b/iot-machine-state-event-generator-job/src/test/java/DemoTes.java index 4428f33..34b5a54 100644 --- a/iot-machine-state-event-generator-job/src/test/java/DemoTes.java +++ b/iot-machine-state-event-generator-job/src/test/java/DemoTes.java @@ -14,8 +14,11 @@ import org.elasticsearch.client.indices.CreateIndexRequest; import org.elasticsearch.client.indices.CreateIndexResponse; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.Aggregations; @@ -33,6 +36,11 @@ import org.elasticsearch.search.sort.SortOrder; import java.io.IOException; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.List; public class DemoTes { @@ -56,15 +64,39 @@ public class DemoTes { try { - /* 按日期分组 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); + BoolQueryBuilder bool = new BoolQueryBuilder(); + // + long l = LocalDate.now().plus(-1, ChronoUnit.DAYS) + .atTime(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + BoolQueryBuilder boolQueryBuilder = bool.must(QueryBuilders.termQuery("machineIotMac", 102104060037L)) + .filter(QueryBuilders.rangeQuery("reportTime") + .from(null).timeZone("Z").to(l).includeLower(false).includeUpper(true)); + searchSourceBuilder.size(1); + searchSourceBuilder.sort("reportTime", SortOrder.DESC); + searchSourceBuilder.query(boolQueryBuilder); + SearchRequest request = new SearchRequest("iot_device_monitoring_data"); + request.source(searchSourceBuilder); + // 执行请求 + SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); + if(RestStatus.OK.equals(response.status())) { + SearchHit[] hits = response.getHits().getHits(); + if(hits.length > 0) { + SearchHit hit = hits[0]; + System.out.println(hit.getSourceAsString()); + } + } + + + // 按日期分组 + /*SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); DateHistogramAggregationBuilder dateHistogramAgg = AggregationBuilders.dateHistogram("dateAgg") - .field("reportTime").fixedInterval(DateHistogramInterval.hours(1)).format("yyyy-MM-dd HH"); + .field("reportTime").fixedInterval(DateHistogramInterval.days(1)).format("yyyy-MM-dd"); TopHitsAggregationBuilder topSubAgg = AggregationBuilders.topHits("topSubAgg").size(1).sort("reportTime", SortOrder.DESC); dateHistogramAgg.subAggregation(topSubAgg); searchSourceBuilder.aggregation(dateHistogramAgg); searchSourceBuilder.size(0); - SearchRequest request = new SearchRequest("iot_device_monitoring_data_*"); + SearchRequest request = new SearchRequest("iot_device_monitoring_data"); request.source(searchSourceBuilder); // 执行请求 SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); @@ -90,11 +122,11 @@ public class DemoTes { // 自定义索引 // 创建索引 - CreateIndexRequest request = new CreateIndexRequest("my_test_231"); + /*CreateIndexRequest request = new CreateIndexRequest("my_test_231"); // 索引设置,3个master分片,每个master2个从片 - /*request.settings(Settings.builder() + request.settings(Settings.builder() .put("index.number_of_shards", 3) - .put("index.number_of_replicas", 2));*/ + .put("index.number_of_replicas", 2)); // 字段映射 String mappersStr = "{\n" + " \"properties\": {\n" + @@ -144,8 +176,11 @@ public class DemoTes { boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged(); if(acknowledged && shardsAcknowledged) { System.out.println("索引创建成功"); - } - } catch (IOException e) { + }*/ + + + + } catch (Exception e) { }