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"
}
}
}
}
}
}