1.group操作
格式:
GET /index/type/_search
{
"size": 0, --是否展示聚合过程
"aggs": {
"自定义聚合名称": {
"terms": {
"field": "name" --聚合字段
}
}
}
}
示例
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_agg": {
"terms": {
"field": "name"
}
}
}
}
2.在group字段时报fielddata erro:
3.在聚合操作时出现fielddata erro的错误,需要将fielddata属性改为true
格式:
PUT /index/_mapping/type
{
"properties": {
"字段名称":{
"type": "text"
, "fielddata": true
}
}
}
示例:
PUT /ecommerce/_mapping/product
{
"properties": {
"tags":{
"type": "text"
, "fielddata": true
}
}
}
4.在一个筛选条件下,对另一个字段聚合(统计name为茶杯下的name属性)
格式:
GET /inde/product/_search
{
"query": {
"match": {
"name": "chabei" --字段名称以及要查询的条件
}
}
, "aggs": {
"group_aggs": {
"terms": {
"field": "name" --要聚合的字段名称
}
}
}
, "size": 0 --显示聚合过程
}
5.先分组,再算每组的平均值,计算每个tag下的商品的平均价格
格式:
GET /ecommerce/product/_search
{
"size": 0,
"aggs": { --先分组
"group_avg": {
"terms": {
"field": "tags",
"size": 10
}
, "aggs": { --再求平均值
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
6.计算每个tag下的商品的平均价格,并且按照平均价格降序排序
格式:
GET /ecommerce/product/_search
{
"size": 0
, "aggs": {
"group_avg_sort": { --1.先按照某个字段分组
"terms": {
"field": "tags"
, "order": { --3.根据平均值字段设定排序规则
"avg_price": "asc"
}
}
, "aggs": {
"avg_price": { --2.求平均值
"avg": {
"field": "price"
}
}
}
}
}
}
7.按照指定的价格范围区间进行分组,然后在每组内再按照tag进行分组,最后再计算每组的平均价格
格式:
GET /ecommerce/product/_search
{
"size": 0
, "aggs": { --1.先筛选范围
"group_by_price": {
"range": {
"field": "price",
"ranges": [
{
"from": 0,
"to": 30
},
{
"from": 31
, "to": 70
}
,{
"from": 71
, "to": 100
}
]
}
, "aggs": { --2.分组
"group_tags": {
"terms": {
"field": "tags"
}
, "aggs": { --3.求平均值
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
}
}