国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES時間分組統(tǒng)計查詢

這篇具有很好參考價值的文章主要介紹了ES時間分組統(tǒng)計查詢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

//創(chuàng)建索引
PUT /test
//索引結(jié)構(gòu)
PUT /test/_mapping
{
  "properties": {
   
    "insertTime": {
      "type": "date"
    },
    "id": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword",
          "ignore_above": 256
        }
      }
    },
   
    "pmValue": {
      "type": "double"
    }
  }
}
//批量插入數(shù)據(jù)
PUT /test/_bulk
{"index":{}}
{"id":1000,"pmValue":20.13,"insertTime":"2022-08-21"}
{"index":{}}
{"id":2000,"pmValue":20.13,"insertTime":"2022-08-22"}
{"index":{}}
{"id":3000,"pmValue":20.13,"insertTime":"2022-08-20"}
{"index":{}}
{"id":4000,"pmValue":20.13,"insertTime":"2022-08-22"}
{"index":{}}
{"id":5000,"pmValue":20.13,"insertTime":"2022-08-22"}
{"index":{}}
{"id":6000,"pmValue":20.13,"insertTime":"2022-08-22"}
{"index":{}}
{"id":7000,"pmValue":20.13,"insertTime":"2022-08-22"}
{"index":{}}
{"id":8000,"pmValue":20.13,"insertTime":"2022-08-19"}

按照id、時間分組求pmValue的平均值
GET /test/_search
{
  
  "size": 0,
  "aggs": {
    "ID": {
      "terms": {
        "field": "id.keyword"
      },
      "aggs": {
        "時間": {
          "date_histogram": {
            "field": "insertTime",
            "interval": "day",
            "format": "yyyy-MM-dd",
            "min_doc_count": 0,
            "extended_bounds": {
              "min": "2022-08-14",
              "max": "2022-08-20"
            }
          },
          "aggs": {
            "平均值": {
              "avg": {
                "field": "pmValue"
              }
            }
          }
        }
      }
    }
  }
}





查詢結(jié)果:
ES時間分組統(tǒng)計查詢,ES,elasticsearch,mybatis,java
以上對應(yīng)的Java代碼

@Autowired
	private RestHighLevelClient client;
public Map<Object,List<Map<String,Object>>> searchFlow(String index,List<Map<String,Object>> paramList){
		//搜索請求
		SearchRequest request = new SearchRequest(index);
		//請求條件構(gòu)建器,這里和mybatis中的自定義查詢有點類型
		SearchSourceBuilder builder = new SearchSourceBuilder();
		BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
		BoolQueryBuilder query = QueryBuilders.boolQuery();
		for (Map<String, Object> map : paramList) {
			BoolQueryBuilder query1 = QueryBuilders.boolQuery();
			map.forEach((k, v) -> {
				query1.must(QueryBuilders.termsQuery(k + ".keyword", v));
			});
			query.should(query1);
		}
		boolQueryBuilder.must(query);


//其他查詢條件
		boolQueryBuilder.must(QueryBuilders.termsQuery("字段" + ".keyword", "字段值"));
		

		//id分組
		TermsAggregationBuilder linkAgg = AggregationBuilders.terms("linkAgg").field("id.keyword");
		//時間分組
		String extendedBoundsMin = DateUtil.format(DateUtil.offsetDay(new Date(), -6), "yyyy-MM-dd");
		String extendedBoundsMax = DateUtil.format(new Date(), "yyyy-MM-dd");
		DateHistogramAggregationBuilder dateHistogramAggregationBuilder = AggregationBuilders
				.dateHistogram("timeAgg").field("insertTime").dateHistogramInterval(DateHistogramInterval.DAY)
				.format("yyyy-MM-dd").minDocCount(0).extendedBounds(new ExtendedBounds(extendedBoundsMin,extendedBoundsMax));

		//取出速率的平均值
		AvgAggregationBuilder avgAggregationBuilder = AggregationBuilders.avg("outSpeedAvg").field("pmValue");
		dateHistogramAggregationBuilder.subAggregation(avgAggregationBuilder);
		linkAgg.subAggregation(dateHistogramAggregationBuilder);

		builder.aggregation(linkAgg);
		builder.query(boolQueryBuilder);
		builder.size(10000);
		//把查詢添加放入請求中
		request.source(builder);
		//建立SearchResponse
		SearchResponse response;
		Map<Object,List<Map<String,Object>>> map = new HashMap<>(16);
		try {

			response = client.search(request, RequestOptions.DEFAULT);
			Aggregations aggregations = response.getAggregations();
			Terms linkResTerms = aggregations.get("linkAgg");
			List<? extends Terms.Bucket> linkIdBuckets = linkResTerms.getBuckets();

			if (linkIdBuckets != null) {
				for (Terms.Bucket bucket:linkIdBuckets){
					List<Map<String,Object>> list = new ArrayList<>();
					Object linkId = bucket.getKey();
					Aggregations aggregations1 = bucket.getAggregations();
					ParsedDateHistogram dateHistogram =  aggregations1.get("timeAgg");
					List<? extends Histogram.Bucket> timeBuckets = dateHistogram.getBuckets();
					if (timeBuckets != null) {
						for (Histogram.Bucket bucket1:timeBuckets) {
							Map<String,Object> valueMap = new HashMap<>(16);
							String time = bucket1.getKeyAsString();
							Aggregations aggregations2 = bucket1.getAggregations();
							Avg outSpeedAvg = aggregations2.get("outSpeedAvg");
							double value = outSpeedAvg.getValueAsString() == "Infinity"?0:Double.valueOf(outSpeedAvg.getValueAsString());
							valueMap.put("time",time);
							valueMap.put("value",value);
							list.add(valueMap);
						}
						map.put(linkId,list);
					}

				}
			}

		} catch (Exception e) {
			   log.error("es查詢異常",e);
		}
		return map;

	}

更多內(nèi)容課參考:
https://www.cnblogs.com/xiaoyh/p/16264715.html文章來源地址http://www.zghlxwxcb.cn/news/detail-524574.html

到了這里,關(guān)于ES時間分組統(tǒng)計查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java Elasticsearch多條件分組聚合查詢

    需求 ????????在項目開發(fā)中,需要從elasticsearch中查詢?nèi)罩緮?shù)據(jù),先統(tǒng)計每一天的日志調(diào)用量,然后在每一天的分組聚合基礎(chǔ)上,再分組聚合統(tǒng)計成功和失敗的日志調(diào)用量。 代碼

    2024年02月08日
    瀏覽(27)
  • 【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗?,ES倒排索引介紹

    【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗珽S倒排索引介紹

    termQuery matchQuery 模糊查詢 multiMatchQuery 多個字段模糊查詢 如果時間字段寫入時用的類型是Text,可以用“時間字段.keyword”來處理 #查詢前傳入分頁參數(shù) #分頁后拿到總記錄數(shù) 把文檔D對應(yīng)到的映射轉(zhuǎn)換為到文檔ID的映射,每個都對應(yīng)著一系列的文檔,這些文

    2024年02月15日
    瀏覽(126)
  • ES統(tǒng)計分組后的分組數(shù)量

    工作中遇到需要統(tǒng)計分組數(shù)量的查詢,記錄一下 ps: 按區(qū)域分組, 統(tǒng)計有幾個區(qū)域 結(jié)果

    2024年02月07日
    瀏覽(28)
  • Mysql的分組查詢和統(tǒng)計計算

    1.聚合函數(shù) 聚合函數(shù)實現(xiàn)數(shù)據(jù)的統(tǒng)計計算,用于計算表中的數(shù)據(jù),返回單個計算結(jié)果。聚合函數(shù)包括COUNT、SUM、AVG、MAX、MIN等函數(shù),下面分別介紹。 (1)COUNT函數(shù) COUNT函數(shù)用于計算組中滿足條件的行數(shù)或總行數(shù)。 語法格式: COUNT ( { [ ALL | DISTINCT ] 表達式 } | * ) 其中,ALL表示

    2024年02月16日
    瀏覽(25)
  • MYSQL之查詢按日期分組統(tǒng)計

    1.1、dayofyear、dayofmonth、dayofweek dayofyear(date) 函數(shù)返回日期位于所在年份的第幾天,范圍是1 ~ 366 dayofmonth(date) 函數(shù)返回日期位于所在月份的第幾天,范圍是1 ~ 31 dayofweek(date) 函數(shù)返回日期位于所在周的第幾天,范圍是1 ~ 7 查詢語句 查詢結(jié)果 ?? 需要注意的是,如果是 dayofmon

    2024年02月02日
    瀏覽(23)
  • MySQL時間分組:按小時統(tǒng)計數(shù)據(jù)(mysql按小時分組)

    MySQL時間分組是一類涉及MySQL數(shù)據(jù)庫的SQL語句,能夠以小時對數(shù)據(jù)進行分組統(tǒng)計。 比如,如果你想根據(jù)一定的時間間隔,把MySQL數(shù)據(jù)庫中的記錄分成幾組,那么MySQL時間分組技術(shù)就派上用場了。 MySQL時間分組主要使用MySQL語句YEAR(), WEEK(), HOUR()和GROUP BY來實現(xiàn),按小時統(tǒng)計數(shù)據(jù)實

    2024年02月12日
    瀏覽(22)
  • 使用Elasticsearch進行分組聚合統(tǒng)計

    使用Elasticsearch進行分組聚合統(tǒng)計

    要使用Elasticsearch進行分組聚合統(tǒng)計,可以使用聚合(aggregation)功能。聚合操作允許您根據(jù)指定的條件對文檔進行分組,并計算每個分組的聚合結(jié)果。 針對普通類型的字段,DSL構(gòu)建語法: aggs:?aggregations的別名,代表著分組 agg_name: 這個是自定義的名字,可以針對你自己

    2024年02月15日
    瀏覽(21)
  • elastic search es 分組統(tǒng)計 aggs 次數(shù)用法

    參考鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html es 各個版本的語法可能會不一樣,如果大家在用的時候發(fā)現(xiàn)語法報錯了,請查閱相關(guān)版本的語法。 剛需要按 ip 地址統(tǒng)計某個接口的訪問次數(shù),查了下 es 分組統(tǒng)計次數(shù) aggs 的用法,特此記錄一下,方

    2024年02月11日
    瀏覽(13)
  • ES es Elasticsearch 十三 Java api 實現(xiàn)搜索 分頁查詢 復雜查詢 過濾查詢 ids查詢 等

    目錄 Java api 實現(xiàn)搜索 Pom.xml 建立鏈接 搜索全部記錄 增加規(guī)則值查某些字段 搜索分頁 全代碼 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 復雜查詢 bool查詢 filter? bool 復雜查詢增加過濾器查詢 復雜擦好像加排序 日志 思路 參考 api 寫法 寫Java代碼 請求條件構(gòu)建層次

    2024年02月04日
    瀏覽(25)
  • 如何使用ES做簡單的時間條件過濾+模糊查詢+精確匹配+關(guān)鍵字排除,查詢 elasticsearch查詢結(jié)果包含或排除某些字段、_source查詢出需要的屬性名稱

    目錄 一、時間條件過濾+模糊查詢+精確匹配+排除 1. 查詢出包含 log_geo 的數(shù)據(jù) “wildcard”: { “message”: “l(fā)og_geo” } 2. 查詢某個時間段的數(shù)據(jù) 3. 條件查詢與條件排除數(shù)據(jù) 4. from 表示起始的記錄的ID 5. size 表示顯示的記錄數(shù) 6.sort排序 desc降序、asc升序? 7.should查詢在mysql中

    2024年01月18日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包