精品欧美一区二区三区在线观看 _久久久久国色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麻豆精品国产无毒不卡在线观看 | 国产无遮挡呻吟娇喘视频| 亚洲人挤奶视频| 91.com视频| 国产精品丝袜久久久久久消防器材| 国产在线观看黄| 国产传媒久久文化传媒| 日本欧美中文字幕| 青青草原国产视频| 国产麻豆一区二区三区精品视频| 欧美精品粉嫩高潮一区二区| 一区二区传媒有限公司| 免费a级在线播放| 91日韩精品一区| 97超级在线观看免费高清完整版电视剧| 日韩在线视频免费播放| 伊人色**天天综合婷婷| 精品一区二区三区四区| 久久久久久久久久影视| 欧美成人毛片| 欧美日韩中文字幕在线| 国产精品久久久影院| 国产成人天天5g影院在线观看| 国产成人无遮挡在线视频| 国产精国产精品| 丰满少妇乱子伦精品看片| 天天做天天爱综合| 国产一区二区三区在线| 又黄又爽的网站| 精品国产亚洲一区二区三区大结局 | 久99久精品视频免费观看| 91sao在线观看国产| 久久国产在线视频| 欧美激情91| www.日韩视频| 五月婷婷婷婷婷| 国产欧美一区二区精品久久久| 亚洲国产成人精品久久久国产成人一区| 潘金莲激情呻吟欲求不满视频| 经典三级一区二区| 色综合一区二区三区| 久久久久久久久久久99| 三级资源在线| 亚洲国产一二三| 性一交一乱一伧国产女士spa| 尤物视频在线看| 亚洲另类在线视频| 手机看片日韩国产| h片在线观看网站| 亚洲女与黑人做爰| 成人免费看片视频在线观看| 超碰免费在线播放| 亚洲少妇最新在线视频| 粉嫩av一区二区三区天美传媒 | 中文字幕亚洲在| 亚洲综合av一区| 黄色一级大片在线免费看产| 国产精品美女久久久久久久久 | 成年人看的免费视频| 欧美色图一区| 久久精品最新地址| 超碰手机在线观看| 国内自拍视频一区二区三区| 国内久久久精品| 日韩欧美a级片| 日韩激情一二三区| 国产专区欧美专区| 亚洲欧美激情在线观看| 99精品一区二区三区| 免费看国产精品一二区视频| 国产在线视频你懂得| 国产精品国产自产拍高清av | 91在线三级| 一本久久精品一区二区| 一级黄色特级片| 亚洲专区**| 亚洲欧美日韩区| 亚洲波多野结衣| 亚洲小说区图片区| 国产精品国产三级国产aⅴ9色| 亚洲免费视频二区| 国产精品资源网站| 久久国产一区二区| 日本中文字幕在线视频| 亚洲一区影音先锋| 国产精品69页| 97青娱国产盛宴精品视频| 日韩精品在线观看视频| 国产日韩精品一区二区| 国产精品久久国产| xxxxxx欧美| 欧美精品色一区二区三区| 蜜臀视频在线观看| 成人在线免费视频观看| 欧美激情第6页| 波多野结衣一区二区三区在线 | 欧美日韩国产麻豆| 艹b视频在线观看| 久久精品亚洲成在人线av网址| 伊人一区二区三区久久精品| 五月天丁香激情| 日本不卡的三区四区五区| 亚洲一区美女视频在线观看免费| 深夜福利免费在线观看| 最新国产の精品合集bt伙计| 欧美黑人经典片免费观看| 热久久久久久| 亚洲日本成人网| 欧美日韩亚洲国产另类| 奇米影视在线99精品| 精品欧美一区二区久久久伦| 国产1区在线| 在线中文字幕不卡| 亚洲成人av免费在线观看| 婷婷久久国产对白刺激五月99| 91爱视频在线| 成人午夜精品福利免费| 最近中文字幕一区二区三区| 日本成年人网址| 国内精品麻豆美女在线播放视频| 少妇av一区二区三区| 日日夜夜狠狠操| 波多野结衣91| 欧美亚洲色图视频| 日本亚州欧洲精品不卡| 最近2019年好看中文字幕视频| www.毛片.com| 99久久99久久精品免费看蜜桃| 国产911在线观看| 韩国一区二区三区视频| 色妞色视频一区二区三区四区| 波多野结衣视频网站| 99久久777色| 色欲色香天天天综合网www| av在线成人| 精品久久国产精品| 亚洲一级av毛片| 国产女人18毛片水真多成人如厕 | 丁香婷婷深情五月亚洲| 麻豆传媒网站在线观看| 精品国产亚洲日本| 欧美成在线观看| 亚洲AV无码国产精品午夜字幕 | 中文字幕欧美色图| 欧美国产丝袜视频| av污在线观看| 99久久99热这里只有精品| 国产精品影片在线观看| av网在线观看| 欧美精品乱码久久久久久按摩| 少妇太紧太爽又黄又硬又爽小说| 免费观看久久久4p| 91手机视频在线| 久久久久久久久久久久电影| 久久高清视频免费| 韩国中文字幕hd久久精品| 亚洲综合在线观看视频| 娇妻高潮浓精白浆xxⅹ| 日韩图片一区| 神马影院午夜我不卡| 久久青草视频| 蜜臀久久99精品久久久无需会员| 性一交一乱一色一视频麻豆| 亚洲国产裸拍裸体视频在线观看乱了| 年下总裁被打光屁股sp | 国产wwwxx| 国产精品久久久久9999赢消| 成人免费视频在线观看超级碰| 超碰在线最新| 日韩黄色av网站| 中文字幕日本视频| 一区二区三区在线免费观看| 国产女主播在线播放| 在线一区视频| 在线视频91| 国产一级成人av| 国产精品高潮呻吟久久av无限 | 国产精品二三区| 无码人妻丰满熟妇区毛片蜜桃精品| 黑丝一区二区| 日韩欧美在线观看强乱免费| 亚洲一区导航| 91av国产在线| 丝袜美腿美女被狂躁在线观看| 日韩一级在线观看| 日本a级c片免费看三区| 亚洲人成网站色在线观看| 香港三级日本三级| 美女在线一区二区| 国产成人永久免费视频| 国产91久久精品一区二区| 91亚洲va在线va天堂va国 | 麻豆网站在线| 日韩电影大片中文字幕| 国产尤物视频在线观看| 婷婷综合五月天| 99久久久免费精品| 久久久五月婷婷| 成年人看片网站| 日韩精彩视频在线观看| 免费特级黄色片| 欧美xxav| 欧美一区二区三区电影在线观看| 午夜免费欧美电影| 国产欧美日韩精品丝袜高跟鞋| 菠萝蜜视频在线观看www入口| 中文字幕日韩在线视频| 欧美性猛交 xxxx| 91麻豆精品国产91久久久使用方法 | 少妇性bbb搡bbb爽爽爽欧美| 欧美喷水一区二区| 欧美一级淫片免费视频黄| 亚洲成人777| 欧美视频www| 欧美国产精品v| 精品人妻一区二区三区香蕉| 国产精品18久久久久久久久久久久| 成人免费视频久久| 免费视频一区| 99热在线这里只有精品| 欧美伊人久久| 日本一道在线观看| 99久久激情| 一区一区视频| 青青草综合网| 亚洲精品国产精品国自产观看| 图片婷婷一区| 九九九九九九精品| 日韩极品少妇| 国内精品国语自产拍在线观看| 综合欧美亚洲| 成人欧美一区二区| 欧美午夜在线播放| 91传媒免费看| 伊人久久噜噜噜躁狠狠躁| 91在线国产电影| 成人在线啊v| 亚洲va国产va天堂va久久| 国内欧美日韩| 成人淫片在线看| 国产精品一区二区三区四区在线观看| 国产有码一区二区| 24小时成人在线视频| 国产欧美精品一区二区三区-老狼| yy6080久久伦理一区二区| 国产精品极品在线| 成人国产精选| 91九色国产在线| 高清在线一区二区| 成人av网站观看| 国内精品免费| 日本公妇乱淫免费视频一区三区| 欧美日韩国产高清电影| 亚洲精品影院| 亚洲国产不卡| 国产二区视频在线| 欧美亚洲一级| 在线观看国产一级片| 精品一区二区在线播放| 最好看的中文字幕| k8久久久一区二区三区| 国产呦小j女精品视频| 国产农村妇女毛片精品久久麻豆| 欧美老女人性生活视频| 国产精品成人一区二区三区夜夜夜 | 麻豆av免费在线| 另类调教123区| 人妻激情偷乱视频一区二区三区| 丁香一区二区三区| 91中文字幕永久在线| 国产精品视频在线看| 少妇人妻丰满做爰xxx| 亚洲成人综合在线| 久久精品五月天| 91麻豆精品国产91久久久久| 精品人妻aV中文字幕乱码色欲| 亚洲国产精品一区二区三区| 狠狠狠综合7777久夜色撩人| 色偷偷噜噜噜亚洲男人| 大香伊人久久| 国产精品高清网站| 一区二区中文字幕在线观看| 欧美高清视频一区| 99久久夜色精品国产亚洲1000部| 男人天堂手机在线视频| 日韩电影在线免费看| 女同性αv亚洲女同志| 久久久久国产一区二区三区四区 | 欧美色电影在线| 理论片中文字幕| 中文字幕亚洲字幕| 2019中文字幕在线电影免费| 国产精品天天狠天天看| 欧美精品国产白浆久久久久| 午夜精品一区二区在线观看| 欧美日韩久久| 黄色手机在线视频| av一二三不卡影片| 人妻人人澡人人添人人爽| 日韩欧美亚洲国产一区| www.蜜桃av.com| 色综合伊人色综合网站| 中文字幕人成乱码在线观看| 91精品在线看| 精品国产一区二区三区噜噜噜| 日韩成人手机在线| 精品亚洲欧美一区| 中文字幕国产专区| 亚洲动漫第一页| 99热这里只有精品在线观看| 亚洲人成在线观看网站高清| 丝袜美腿av在线| 成人看片人aa| 欧美aaaa视频| www.色偷偷.com| 久久中文字幕电影| 日韩精品视频播放| 精品裸体舞一区二区三区| 免费观看久久久久| 国产精品久久久久久久久久尿| 日韩母乳在线| 日韩视频免费播放| 国产成人午夜片在线观看高清观看| 蜜桃av免费观看| 在线精品视频一区二区三四 | 久久久av一区| 国产亚洲人成a在线v网站| 日本一区二区三区免费看| 亚洲一区不卡| 国产二级一片内射视频播放| 一区二区三区四区五区视频在线观看| 伊人精品一区二区三区| 在线观看国产成人av片| 中文字幕不卡三区视频| 久久精品一区二区三区不卡免费视频| 欧美日韩蜜桃| 手机免费看av片| 午夜视频在线观看一区二区三区| 亚洲av无码乱码国产精品| 免费av一区二区| 天堂久久av| 日韩国产一级片| 95精品视频在线| av黄色在线看| 亚洲精品中文字幕女同| 厕沟全景美女厕沟精品| 欧美精品一区二区三区在线四季| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲熟妇无码av| 91国偷自产一区二区三区观看| 你懂的免费在线观看视频网站| 国产成人aa精品一区在线播放| 国模精品一区| 在线观看国产一级片| 亚洲日本欧美天堂| 懂色av成人一区二区三区| 久久久久久有精品国产| 国产精品18hdxxxⅹ在线| 欧美二区在线视频| 国产日产欧产精品推荐色| 亚洲天堂手机版| 欧美成人免费小视频| 精品丝袜久久| 国内外免费激情视频| 国产精品久久久久久久久免费丝袜| 一级黄色大片网站| 欧美大胆在线视频| 日韩欧美四区| 亚洲精品www.| 亚洲一二三区在线观看| 黄色影院在线播放| 成人免费大片黄在线播放| 伊人久久大香线蕉综合热线 | 天堂在线精品视频| 午夜天堂影视香蕉久久| 国产高清视频免费最新在线| 成人久久一区二区| 亚洲区第一页| 国产极品视频在线观看| 亚洲成年人影院在线| 日韩大尺度黄色| 91免费视频黄| 久久久久久久久久久久久久久99 | 久久久女女女女999久久| 亚洲女娇小黑人粗硬| 九九九九九伊人| 狠狠色狠狠色综合日日小说| 在线观看免费网站黄| 国产精品我不卡| 青青草伊人久久| 日产电影一区二区三区| 一区二区av在线| 国产乱人伦丫前精品视频| 中文字幕一区二区三区四区在线视频| 亚洲一区二区三区四区在线| 国产视频三级在线观看播放| 99国产在线视频|