1、按照父文档的字段去聚合
GET shop_info/_search
{
"size": 0,
"aggs": {
"top-tags": {-------自定义
"terms": {
"field": "p_name.keyword", -----父文档的字段p_name keyword是精确索引需要的
"size": 10
},
"aggs": {
"to_answers": { ------自定义字段
"children": {
"type": "cal_detail"
},
"aggs": {
"cal_sum": { ----自定义字段
"sum": {
"field": "cal_number" ------子文档的字段
}
}
}
}
}
}
}
}
1、按照父文档的字段去聚合后的结果过滤
GET shop_info/_search
{
"size": 0,
"aggs": {
"top-tags": {
"terms": {
"field": "p_name.keyword",
"size": 10
},
"aggs": {
"to_answers": {
"children": {
"type": "cal_detail"
},
"aggs": {
"cal_sum": {
"sum": {
"field": "cal_number"
}
}
}
},
"sum_bucket_filter": {
"bucket_selector": {
"buckets_path": {
"totalSales": "to_answers.cal_sum"--------注意该路径
},
"script": "params.totalSales>10000" ----注意params
}
}
}
}
}
}
查询满足父文档且满足子文档的文档
GET shop_info/_search
{
"query": {
"bool": {
"must": [
{
"has_child": {
"type": "cal_detail", ----子文档
"query": {
"bool": {
"must": [
{
"term": {
"name": {
"value": "测算结果2"
}
}
}
]
}
}
}
},
{
"term": {
"p_name.keyword": { -------父文档的条件
"value": "体验店1"
}
}
}
]
}
}
}
父子文档,按照父文档字段p_name对子文档进行sum聚合,然后对聚合后的结果进行分页+排序
GET shop_info/_search
{
"size": 0,
"aggs": {
"top-tags": {
"terms": {
"field": "p_name.keyword",
"size": 10
},
"aggs": {
"my_page": {
"bucket_sort": {
"from": 0,
"size": 1,
"sort": {
"to_answers.cal_sum": {
"order": "desc"
}
}
}
},
"to_answers": {
"children": {
"type": "cal_detail"
},
"aggs": {
"cal_sum": {
"sum": {
"field": "cal_number"
}
}
}
}
}
}
}
}