精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊Elasticsearch之Metric聚合

開發 前端
此篇文章簡單的記錄一下 elasticsearch的metric聚合操作。比如求 平均值、最大值、最小值、求和、總計、去重總計等。

1、背景

此篇文章簡單的記錄一下 elasticsearchmetric聚合操作。比如求 平均值、最大值、最小值、求和、總計、去重總計等。

2、準備數據

2.1 準備mapping

PUT /index_person
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"properties": {
"id":{
"type": "long"
},
"name": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"class":{
"type": "text",
"fielddata": true
},
"province":{
"type": "keyword"
}
}
}
}

2.2 準備數據

PUT /index_person/_bulk
{"index":{"_id":1}}
{"id":1, "name":"張三","age":18,"class":"大一班","province":"湖北"}
{"index":{"_id":2}}
{"id":2, "name":"李四","age":19,"class":"大一班","province":"湖北"}
{"index":{"_id":3}}
{"id":3, "name":"王武","age":20,"class":"大二班","province":"北京"}
{"index":{"_id":4}}
{"id":4, "name":"趙六","age":21,"class":"大三班技術班","province":"北京"}
{"index":{"_id":5}}
{"id":5, "name":"錢七","age":22,"class":"大三班","province":"湖北"}

3、metric聚合

3.1 max 平均值

3.1.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"max": {
"field": "age",
"missing": 10
}
}
}
}


POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"max": {
"script": {
"lang": "painless",
"source": """
doc.age
"""
}
}
}
}
}


POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"max": {
"field": "age",
"script": {
"lang": "painless",
"source": """
_value * params.a
""",
"params": {
"a": 2
}
}
}
}
}
}

3.1.2 java代碼

@Test
@DisplayName("最大值聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.max(max ->
// 聚合的字段
max.field("age")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

@Test
@DisplayName("腳本聚合")
public void test02() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.max(max ->
max.script(script ->
script.inline(inline ->
inline.lang(ScriptLanguage.Painless)
// 腳本表達式
.source("doc.age")
)
)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

@Test
@DisplayName("值腳本聚合")
public void test03() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.max(max ->
// 指定參與聚合的字段
max.field("age")
.script(script ->
script.inline(inline ->
inline.lang(ScriptLanguage.Painless)
// 腳本表達式
.source("_value * params.plus")
// 參數
.params("plus", JsonData.of(2))
)
)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.2 min最小值

3.2.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"min": {
"field": "age",
"missing": 10
}
}
}
}

3.2.2 java

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"min": {
"field": "age",
"missing": 10
}
}
}
}

3.3 min最小值

3.3.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"avg": {
"field": "age",
"missing": 10
}
}
}
}

3.3.2 java

@Test
@DisplayName("平均值聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.avg(avg ->
// 聚合的字段
avg.field("age")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.4 min最小值

3.4.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"sum": {
"field": "age",
"missing": 10
}
}
}
}

3.4.2 java

@Test
@DisplayName("求和聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.sum(sum ->
// 聚合的字段
sum.field("age")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.5 count(*)

3.5.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"value_count": {
"field": "province",
"missing": 10
}
}
}
}

3.5.2 java

@Test
@DisplayName("count(*)聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.valueCount(valueCount ->
// 聚合的字段
valueCount.field("age")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.6 count(distinct)

3.6.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"cardinality": {
"field": "province",
"missing": 10
}
}
}
}

3.6.2 java

@Test
@DisplayName("count(distinct)聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.cardinality(cardinality ->
// 聚合的字段
cardinality.field("province")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.7 stat (max,min,avg,count,sum)

3.7.1 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"agg_01": {
"stats": {
"field": "avg",
"missing": 10
}
}
}
}

3.7.2 java

@Test
@DisplayName("stat聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.aggregations("agg_01", agg ->
agg.stats(stats ->
// 聚合的字段
stats.field("age")
// 如果聚合的文檔缺失這個字段,則給10
.missing(10)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.8 聚合后返回每個聚合涉及的文檔

3.8.1 需求

根據 province進行terms聚合,然后獲取每個terms聚合 age最大的那個文檔。

3.8.2 dsl

POST /index_person/_search
{
"size": 0,
"query": {
"range": {
"age": {
"gte": 10
}
}
},
"aggs": {
"agg_01": {
"terms": {
"field": "province"
},
"aggs": {
"agg_02": {
"top_hits": {
"from": 0,
"size": 1,
"sort": [
{
"age": {"order": "desc"}
}
],
"_source": {
"includes": ["id","age","name"]
}
}
}
}
}
}
}

3.8.3 java

@Test
@DisplayName("top hits 聚合")
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index("index_person")
.size(0)
.query(query -> query.range(range -> range.field("age").gt(JsonData.of(10))))
.aggregations("agg_01", agg ->
agg.terms(terms ->
terms.field("province")
)
.aggregations("agg_02", subAgg ->
subAgg.topHits(topHits ->
topHits.from(0)
.size(1)
.sort(sort -> sort.field(field -> field.field("age").order(SortOrder.Desc)))
.source(source -> source.filter(filter -> filter.includes(Arrays.asList("id", "age", "name"))))
)
)
)
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);
}

3.8.4 運行結果

運行結果

4、完整代碼

https://gitee.com/huan1993/spring-cloud-parent/tree/master/es/es8-api/src/main/java/com/huan/es8/aggregations/metric

5、參考文檔

1、https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-metrics-max-aggregation.html

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-04-09 11:56:10

Elasticsear集群硬件

2022-12-12 09:13:45

global聚合filters

2022-12-30 09:12:55

查詢es搜索值

2023-11-30 15:23:07

聚合查詢數據分析

2021-07-11 12:12:49

.NETJWTjson

2025-03-17 11:21:08

APISwagger界面

2020-05-27 08:05:33

MybatisMapper接口

2022-01-10 11:28:55

數據結構算法DP入門

2021-06-08 09:28:12

.Net通知服務

2010-09-10 14:05:12

SQL聚合函數

2022-01-04 11:31:15

不同路徑DP

2016-11-28 08:40:17

系統降級服務

2016-11-25 00:45:37

隊列數據

2023-11-06 07:35:08

節點集群ES

2016-11-28 09:00:10

瀏覽器瀏覽器緩存服務端

2022-03-01 17:16:16

數倉建模ID Mapping

2021-01-18 10:33:53

Java反射模塊

2020-05-06 22:07:53

UbuntuLinux操作系統

2024-06-26 19:14:53

2017-06-06 15:24:13

springElasticSear架構
點贊
收藏

51CTO技術棧公眾號

亚洲老板91色精品久久| 午夜国产精品一区| 亚洲综合色激情五月| 国产无遮无挡120秒| 欧美电影完整版在线观看| 亚洲www啪成人一区二区麻豆| 秋霞久久久久久一区二区| 91女人18毛片水多国产| 99国产精品99久久久久久粉嫩| 亚洲欧洲第一视频| 在线观看欧美一区二区| 韩国美女久久| 亚洲精品第1页| 日本福利一区二区三区| www.国产黄色| 热久久一区二区| 国产69精品久久久| 四虎地址8848| 你微笑时很美电视剧整集高清不卡| 欧美精品国产精品| 欧美 国产 日本| 污污影院在线观看| 国产欧美日本一区视频| 成人av影视在线| 91国产免费视频| 久久激情综合| 韩剧1988免费观看全集| 黄色片子在线观看| 操欧美老女人| 亚洲男人天堂手机在线| 污网站免费观看| 国产区一区二| 欧美日韩情趣电影| 午夜精品久久久内射近拍高清| 女同视频在线观看| 亚洲三级小视频| 亚洲精品国产精品国自产| 天堂在线中文资源| 99久久婷婷国产综合精品| 7777精品伊久久久大香线蕉语言| 夜夜骚av一区二区三区| 日韩不卡一二三区| 欧洲一区二区视频| 国产精品自拍99| 亚洲日韩视频| 久久人人97超碰精品888| 婷婷在线精品视频| 91精品亚洲| 久久精品成人一区二区三区| 免费看的黄色录像| 日韩欧美二区| 日韩中文字幕在线观看| 日本视频在线免费| 欧美高清在线| 色综合影院在线| 国产精品麻豆免费版现看视频| 不卡视频在线| 日韩视频免费中文字幕| 欧美爱爱免费视频| 你懂的网址国产 欧美| 久久亚洲私人国产精品va| 五月综合色婷婷| 欧美成人一品| 久久久久久午夜| 日本三级网站在线观看| 99精品国产一区二区青青牛奶 | 一级日本在线| 国产精品视频看| 亚洲图色在线| 在线观看免费视频你懂的| 樱花草国产18久久久久| 国产精品久久久久久久乖乖| 国产精品一区二区日韩| 色视频欧美一区二区三区| 九九热免费精品视频| 国产成人免费| 日韩免费看网站| 女同性恋一区二区三区| 国产一区二区欧美| 久久久成人av| 日韩黄色a级片| 久久久久国产一区二区| 国产美女主播一区| 亚洲精品97久久中文字幕无码| 97久久超碰国产精品| 日本精品一区二区三区不卡无字幕| www 日韩| 亚洲综合自拍偷拍| 可以免费观看av毛片| 亚洲综合资源| 亚洲精品美女久久久久| 91免费在线看片| 黄色综合网站| 国产精品aaaa| 亚洲国产精品久久人人爱潘金莲| 91亚洲精品乱码久久久久久蜜桃 | 成人久久精品视频| 欧美性猛交 xxxx| 中文字幕精品一区| 久久人人爽人人爽人人av| 日韩电影大全网站| 日韩精品一区二区三区四区视频| 国产熟妇搡bbbb搡bbbb| 欧美在线精品一区| 国产精品欧美久久久| 黑人乱码一区二区三区av| 国产欧美日本一区二区三区| 国产3p露脸普通话对白| 亚洲18在线| 亚洲欧美激情一区| 黄色小视频在线免费看| 蜜臀va亚洲va欧美va天堂| 精品国产一区二区三区免费| 免费在线毛片网站| 色婷婷国产精品久久包臀| 少妇丰满尤物大尺度写真| 精品日韩毛片| 8050国产精品久久久久久| 99久久久国产精品无码网爆| 久久噜噜亚洲综合| 黄页免费在线观看视频| 国产在线不卡一区二区三区| 在线观看日韩av| 日本午夜视频在线观看| 国产成都精品91一区二区三 | 欧美精品首页| 国产欧美日韩综合精品| 全色精品综合影院| 午夜伊人狠狠久久| 免费黄色av网址| 一区二区中文| 成人网在线免费观看| www日韩tube| 欧美在线观看一二区| 国产精品久久不卡| 最新国产拍偷乱拍精品| 99国产超薄肉色丝袜交足的后果| 日本欧美在线视频免费观看| 欧美三级午夜理伦三级中视频| 三级网站在线免费观看| 国产精品二区影院| 成人在线观看网址| 日本无删减在线| 日韩精品一区二区三区老鸭窝| chinese全程对白| 精品一区二区在线播放| 亚洲图片都市激情| 成人自拍视频| 麻豆乱码国产一区二区三区| 国产精品爽爽久久| 亚洲精品免费看| 无码人妻丰满熟妇啪啪网站| 欧美日一区二区在线观看 | 在线播放免费视频| 国产精品国产三级国产在线观看 | 亚洲素人在线| 日本精品久久久| 国产精品ⅴa有声小说| 欧洲中文字幕精品| 成人18视频免费69| 国产综合成人久久大片91| www亚洲国产| 欧美日韩黄色| 97精品国产97久久久久久春色| 天天操天天爱天天干| 一本一道综合狠狠老| 我想看黄色大片| 国产一区视频在线看| 国产成人永久免费视频| 欧美天堂社区| 国产精品久久网| sm国产在线调教视频| 精品成a人在线观看| 六月丁香在线视频| 国产欧美精品一区二区三区四区 | 日韩性生活视频| 亚洲h视频在线观看| 舔着乳尖日韩一区| 卡一卡二卡三在线观看| 国精品**一区二区三区在线蜜桃| 欧美黑人在线观看| 美女久久久久| 成人疯狂猛交xxx| 96av在线| 视频在线观看一区二区| 亚洲国产成人精品一区二区三区| 日韩欧美在线中文字幕| 91av手机在线| av不卡在线播放| 亚洲免费黄色网| 99视频一区| 中日韩在线视频| 欧美人与动xxxxz0oz| 国产精品中文久久久久久久| 色图在线观看| 中文字幕久热精品视频在线| 国产成人三级在线播放| 色播五月激情综合网| 久久久久亚洲AV成人| 久久精品日韩一区二区三区| 无人码人妻一区二区三区免费| 西西人体一区二区| 久久久久久久香蕉| 国产精品一国产精品| 国产精品免费一区二区三区观看| 欧洲成人一区| 97碰在线观看| 在线黄色网页| 尤物yw午夜国产精品视频明星| 性中国古装videossex| 欧美性一区二区| 日韩精品视频免费播放| 亚洲久本草在线中文字幕| 久久丫精品忘忧草西安产品| 99视频精品在线| 男人添女人荫蒂国产| 麻豆一区二区三| 91av俱乐部| 国产日韩亚洲| 欧美一级欧美一级| 一区二区三区午夜视频| 亚洲欧美日本国产有色| 欧美**vk| 久久国产精品99久久久久久丝袜| 日韩三级av高清片| 91久久久国产精品| 国产成人午夜性a一级毛片| 国产99久久精品一区二区永久免费 | 99热这里只有精品首页| 91免费在线视频| 激情久久99| 国产免费一区二区三区在线能观看| 毛片电影在线| 欧美一级片在线播放| av中文在线资源库| 欧美精品久久久久a| av免费在线观看网址| 久久精品久久久久久国产 免费| 98在线视频| 国产一区二区三区日韩欧美| 国产视频福利在线| 亚洲视频欧美视频| 免费看男男www网站入口在线| 精品中文视频在线| 日本ー区在线视频| 亚洲人成电影在线播放| 久草在现在线| 在线亚洲午夜片av大片| av在线免费一区| 日韩中文字幕在线| 国产黄色在线网站| 欧美高清自拍一区| 另类视频在线| 97在线视频观看| 国模套图日韩精品一区二区| 国产精品扒开腿做爽爽爽视频 | 亚洲美女视频在线免费观看| 日韩日韩日韩日韩日韩| 一区二区三区导航| 国产裸体舞一区二区三区| 日韩高清在线电影| 五月花丁香婷婷| 国产成人精品www牛牛影视| 免费不卡的av| 91在线观看污| jizz日本在线播放| 亚洲欧美偷拍卡通变态| 国产亚洲精品成人| 狠狠做深爱婷婷久久综合一区| 无码人妻久久一区二区三区| 欧美日韩中字一区| 国产夫妻性生活视频| 亚洲国产欧美一区二区丝袜黑人| 日本又骚又刺激的视频在线观看| 永久免费精品影视网站| 久操免费在线| 69av在线播放| ww久久综合久中文字幕| 91嫩草国产在线观看| 亚洲精品亚洲人成在线| 一区二区三区免费看| 在线观看一区视频| 精品久久久久久中文字幕2017| 国产一区二区三区高清播放| 人妖粗暴刺激videos呻吟| 国产欧美一区二区精品忘忧草| 顶臀精品视频www| 日韩欧美在线播放| 国产美女明星三级做爰| 亚洲成人黄色在线观看| 草碰在线视频| 欧美国产日本高清在线| 日韩免费电影| 亚洲综合色av| 日本在线电影一区二区三区| 久久这里只有精品18| 日本视频免费一区| 亚洲视频在线播放免费| 国产精品美女久久久久久| 日韩av在线天堂| 欧美日韩大陆一区二区| 婷婷国产在线| 免费av一区二区| 欧美xnxx| 精品网站在线看| 欧美va亚洲va日韩∨a综合色| 国产视频在线视频| 不卡的av网站| 九九九免费视频| 欧美日本一区二区三区| 欧洲视频在线免费观看| 欧美激情综合色综合啪啪五月| 8av国产精品爽爽ⅴa在线观看| 激情欧美一区二区三区中文字幕| 99热精品久久| 人妻丰满熟妇av无码区app| 北条麻妃一区二区三区| 小早川怜子一区二区的演员表| 色网综合在线观看| 少妇一区二区三区四区| 欧美肥老妇视频| 日韩专区视频| 亚洲 日韩 国产第一区| 免费中文字幕日韩欧美| 欧美双性人妖o0| 夜色激情一区二区| 国产成人精品一区二区无码呦| 最好看的2019的中文字幕视频| 在线精品亚洲欧美日韩国产| 国语精品免费视频| 激情视频一区| 久久久久久久久久影视| 亚洲精品日产精品乱码不卡| 国产一区二区在线播放视频| 中文字幕精品国产| 成人在线爆射| 日本一区二区三区免费看| 国产伦理一区| 午夜理伦三级做爰电影| 欧美视频精品一区| 日本在线丨区| 国产成人精品一区二区| 精品精品99| 爱情岛论坛成人| 国产精品视频第一区| 制服丝袜在线一区| 中文字幕亚洲欧美一区二区三区 | 青青草激情视频| 日韩一区二区三区高清免费看看| 国产福利在线播放麻豆| 91久久精品美女高潮| 欧美精品导航| 波多野结衣影院| 欧美性少妇18aaaa视频| 欧美老女人性开放| 国产精品成人品| 91视频一区| 亚洲午夜精品在线观看| 亚洲图片欧美视频| 午夜小视频在线播放| 欧美最猛性xxxxx免费| 国内精品视频在线观看| 国产精品区在线| 亚洲免费观看高清完整版在线| 亚洲av无码乱码国产精品久久| 久久久久国产精品免费网站| 日韩三级毛片| 奇米影音第四色| 亚洲人成在线观看一区二区| 性做久久久久久久久久| 欧美与黑人午夜性猛交久久久| 欧美理论在线播放| 日本一本在线视频| 午夜影院久久久| 福利在线视频导航| 91视频婷婷| 久久久久久色| 动漫性做爰视频| 亚洲精品99久久久久中文字幕| 欧美日韩精品免费观看视完整| 资源网第一页久久久| 成人精品一区二区三区中文字幕| 成人午夜淫片100集| 在线视频亚洲欧美| 亚洲精品一二三**| 妞干网在线免费视频| 亚洲视频在线观看三级| 香蕉人妻av久久久久天天| 国产精品一区av| 亚洲国产mv| 小嫩苞一区二区三区| 日韩电影大全免费观看2023年上| 欧美一区二区三区婷婷| 蜜桃传媒一区二区三区| 中文字幕中文乱码欧美一区二区| 免费a级片在线观看| 国产精品自产拍高潮在线观看| 亚洲裸体俱乐部裸体舞表演av| 国产精品麻豆免费版现看视频| 亚洲国产又黄又爽女人高潮的|