1. 程式人生 > >elasticsearch多級聚合查詢

elasticsearch多級聚合查詢

今天談談搜尋中經常用到的一個功能:聚合。我們知道elasticsearch作為當下流行的搜尋引擎當然是支援聚合的

一級聚合:統計每個分類的商品數目:

"aggs": {
    "sample": {
      "terms": {
          "field": "category_path"
      }
  }

相信大家對這個語合都很熟悉,當然也可以用java API實現,client中有相關介面

但是如果要聚合 每個門每個分類下每個品牌的商品數呢!

其實elasticsearch提供了非常友好支援介面,就是聚合中巢狀聚合,可以多級巢狀!

 GET _search
{
"query" : {
"bool" : {
"must" : {
"multi_match" : {
"query" : "牛奶",
"fields" : ["item_no", "keyword"],
"operator" : "and"
}
},
"filter" : {
 "term" : { "status" : "1"}
}
}
},
"size" : 0,
"aggs": {
    "my_unbiased_sample": {
      "terms": {
          "field": "category_path"
      },
            "aggs" : {
                "playback" : 
                {
                  "terms" :{
                    "field" : "brand_id" 
                  }
                }
            }
  }
  }
}