1,根據某個字段聚合
如下是根據 city 字段聚合,然後按照文檔的數量從大到小排序,返回5條數據。
{
“query”: {
"bool": {
"filter": {
.......query-dsl......
}
}
},
"aggs": {"types_count": {"term": {"field": "city", "size": 5, "ordre": {"doc_count": "desc"}}}}
}
2, 分組求和: select field1, field2,sum(*) from dd group by field1
{
"query": {
......query-dsl......
},
"aggs": {
"aggs-name": {
"terms": {
"field": "city",
"size": 100,
"order": "totalNum"
},
"aggs": {
"totalNum": {"sum": {"field": "product_num"}}
}
}
}
}
3,關於嵌套對象聚合分組求和的查詢。
{
"query":{
......query-dsl......
},
"aggs": {
"aggs-name": {
"nested": {
"path": "provice_nested"
},
"aggs": {
"aggs-name": {
"terms": {
"field": "city",
"size": 100,
"order": {"total_num": "desc"}
},
"aggs": {
"total_num": {"sum":{"field": "product_num"}}
}
}
}
}
}
}
4, 關於多個字段的,腳本查詢,按照多個字段組合分組,並排多個聚合。
{
"query": {
......query-dsl......
},
"aggs": {
"aggs-name": {
"terms": {
"script": {
"lang": "painless",
"source": "doc['provice'].value" + '-split-' + "doc['city'].value"
},
"size": 500
},
"aggs":{
"aggs-name1": {
"top_hits": {
"_source": ["field1", "field2", ]
"size": 1,
"sort": {"timestamp": "desc"}
}
},
"aggs-name2": {
"terms": {
"script": {
"lang": "painless",
"source": "doc['category'].value" + '-split-' + "doc['brand'].value"
},
"size": 10
}
}
}
}
}
}
5, 關於多個字段的,腳本查詢,按照多個字段組合分組,並排多個聚合,並且求和。【包含嵌套對象】
{
"query": {
......query-dsl......
},
"aggs": {
"aggs-name": {
"terms": {
"script": {
"lang": "painless",
"source": "doc['provice'].value" + '-split-' + "doc['city'].value"
},
"size": 500
},
"aggs":{
"aggs-name0-total-num": {
"sum": {"field": "product-num"}
}
"aggs-name1": {
"top_hits": {
"_source": ["field1", "field2", ]
"size": 1,
"sort": {"timestamp": "desc"}
}
},
"aggs-name2": {
"terms": {
"script": {
"lang": "painless",
"source": "doc['category'].value" + '-split-' + "doc['brand'].value"
},
"size": 10
}
},
"aggs-name3": {
"nested": {
"path": "province"
},
"aggs": {
"nested-agg-name": {
"terms": {
"script": {
"lang": "painless",
"source": "doc['category'].value" + '-split-' + "doc['brand'].value"
},
"size": 10
},
"aggs": {"total_price": {"sum": {"field": "province.price"}}}
}
}
}
}
}
}
}
6, 關於terms 的include
{
"size": 0,
"query":{...},
"aggs": {
"type_count": {
"terms": {
"field": "brand",
"include": [
"nike", "qiaodan", "addas"
]
}
}
}
}