ES学习(四)--嵌套聚合、下钻分析、聚合分析
一、 先将文本field的fielddata属性设置为true
PUT /ecommerce/_mapping
{
"properties":{
"tags":{
"type":"text",
"fielddata":true
}
}
}
二、统计每个tag下的商品数量
A、GET /ecommerce/_search
{
"size": 0,
"aggs": {
"group_by_tags": {
"terms": {
"field": "tags"
}
}
}
}
三、 对名称中包含yagao的商品,计算每个tag下的数量
GET /ecommerce/_search
{
"query": {
"match": {
"name": "yagao"
}
}
, "aggs": {
"group_by_tags": {
"terms": {
"field": "tags"
}
}
}
}
四、计算每个tag下的平均价格
GET /ecommerce/_search
{
"aggs": {
"group_by_tags": {
"terms": {
"field": "tags",
"order": {
"avg_price": "desc"
}
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
五、 按照指定价格区间进行分组,然后在每组内按照tag进行分组,最后再计算每组的平均价格
GET /ecommerce/_search
{
"size": 0,
"aggs": {
"group_by_range": {
"range": {
"field": "price",
"ranges": [
{
"from": 0,
"to": 30
},
{
"from": 30,
"to":60
}
]
},
"aggs": {
"group_by_tags": {
"terms": {
"field": "tags"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
}
}