elasticSearch:常用聚合查詢匯總

ps. 以下請求體對應(yīng)es 6.x版本下的使用

假設(shè)我們有一個如下mapping的索引

{

????"properties": {

????????"id": {

????????????"type": "keyword"

????????},?

????????"submitAt": {

????????????"type": "date"

????????},

? ? ? ? "user": {

? ? ? ? ? ? "properties": {

????????????????"id": {

????????????????????"type": "integer"

????????????????}

? ? ? ? },

? ? ? ? "label": {

? ??????????"type": "keyword"

????????},

????????"comments": {

????????????"type":"nested",

? ? ? ? ? ? "properties":{

? ? ? ? ? ? ? ? ?"title":{

? ? ? ? ? ? ? ? ? ? ?"type": "keyword"

? ? ? ? ? ? ? ? ?},

? ? ? ? ? ? ? ? ?"submitAt":{

? ? ? ? ? ? ? ? ? ? ?"type": "date"

? ? ? ? ? ? ? ? ?}

????????}

}

1、簡單詞頻統(tǒng)計(每個label出現(xiàn)的次數(shù))

? ??"aggs": {

????????"agg_result": {

????????????"terms": {

????????????????"size": 1000,

????????????????"field": "label"

????????????}

????????}

????}

2、分組詞頻統(tǒng)計(按user分組統(tǒng)計每個label出現(xiàn)的次數(shù))

? ??"aggs": {

????????"agg_result": {

????????????"terms": {

????????????????"size": 1000,

????????????????"field": "user.id"

????????????},

????????????"aggs": {

????????????????"sub_agg_result": {

????????????????????"terms": {

????????????????????????"size": 1000,

????????????????????????"field": "label"

????????????????????}

????????????????}

????????????}

????????}

????}

3、去重聚合(統(tǒng)計去重后的user人數(shù))

????"aggs": {

????????"agg_distinct": {

????????????"cardinality": {

????????????????"field": "user.id"?

????????????}

????????}

????}

4、按時間分組聚合(統(tǒng)計每天的數(shù)據(jù)量)

? ??"aggs": {

????????"agg_result": {

????????????"date_histogram": {

????????????????"field": "submitAt", //這里必須是date類型字段

????????????????"format": "yyyy-MM-dd",

????????????????"time_zone":"+08:00",

????????????????"interval": "day",

????????????????"min_doc_count": 0, //默認(rèn)沒有數(shù)據(jù)時的填充值

????????????????"extended_bounds":{"min":1564588800000, "max":1565679600000} //填充的時間范圍,毫秒

????????????}

????????}

????}

5、對聚合結(jié)果過濾(類似sql中的Having,例如統(tǒng)計出現(xiàn)頻率超過3次的label)

????"aggs": {

????????"agg_result": {

????????????"terms": {

????????????????"size": 1000,

????????????????"field": "label"

????????????},

????????????"aggs": {

????????????????"agg_having": {

????????????????????"bucket_selector": {

????????????????????????"buckets_path": {

????????????????????????????"agg_bucket_count" : "_count"

????????????????????????},

????????????????????????"script": "params.agg_bucket_count > 3"

????????????????????}

????????????????}

????????????}

????????}

????}

6、對Nested 嵌套對象聚合

????"aggs": {

????????"agg_result": {

????????????"nested": {

????????????????"path": "comments"

????????????},

????????????"aggs": {

????????????????"sub_agg_result": {

????????????????????"terms": {

????????????????????????"field": "comments.title"

????????????????????}

????????????????}

????????????}

????????}

????}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容