全文检索-ElasticSearch 进阶检索2
aggregations【执行聚合】
文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-aggregations.html
搜索返回 hits(命中结果),并且同时返回聚合结果,把一个响应中的所有 hits(命中结果)分隔开的能力
基本语法:
"aggregations" : {
"<aggregation_name>" : {
"<aggregation_type>" : {
<aggregation_body>
}
[,"meta" : { [<meta_data_body>] } ]?
[,"aggregations" : { [<sub_aggregation>]+ } ]?
}
[,"<aggregation_name_2>" : { ... } ]*
}
示例1:
搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情。
查询代码
GET bank/_search
{
"query": {
"match": {
"address": "Mill"
}
},
"aggs": {
"ageAgg": {
"terms": { # terms aggregation 表示查看有多少种不同类型
"field": "age", # 分析query查询结果中,共有多少不同age类型
"size": 10 # 只显示10条
}
},
"ageAvg": { # 分析query查询结果中的平均年龄
"avg": {
"field": "age"
}
},
"balanceAvg": { # 分析query查询结果中的平均余额
"avg": {
"field": "balance"
}
}
},
"size": 0 # 不显示query到的数据
}
示例2:
按照年龄聚合,并且请求这些年龄段的这些人的平均薪资
示例3:
查出所有年龄分布,并且这些年龄段中 M 的平均薪资和 F 的平均薪资以及这个年龄段的总体平均薪资
Mapping
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/2611.html
文章版权归作者所有,未经允许请勿转载。
THE END