ElasticSearch中group by + avg + sort等聚合分析是什么样的

发布时间:2021-10-20 10:49:51 作者:柒染
来源:亿速云 阅读:178

本篇文章为大家展示了ElasticSearch中group by + avg + sort等聚合分析是什么样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

将文本fields的Fielddata属性设置true

PUT http://{{es-host}}/ecommerce/_mapping/produce
{
	"properties":{
		"tags":{
			"type":"text",
			"fielddata":true
		}
	}
}

1、计算每个tag下的商品数量

GET http://{{es-host}}/ecommerce/produce/_search
{
	"size":0,
	"aggs":{
		"group_by_tags":{
			"terms":{
				"field":"tags"
			}
		}
	}
}

group_by_tags 代表聚合分组名称,可以随意写,表述清楚含义即可;

field的值对应要聚合的字段

结果:

{
    "took": 43,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 4,
        "max_score": 0,
        "hits": []
    },
    "aggregations": {
        "group_by_tags": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "fangzhu",
                    "doc_count": 2
                },
                {
                    "key": "meibai",
                    "doc_count": 2
                },
                {
                    "key": "qingxin",
                    "doc_count": 1
                }
            ]
        }
    }
}

2、按商品名称搜索并聚合

GET http://{{es-host}}/ecommerce/produce/_search
{
	"query":{
		"match_phrase":{
			"name":"yagao"
		}
	},
	"aggs":{
		"group_by_tags":{
			"terms":{
				"field":"tags"
			}
		}
	},
	"size":0
}

检索结果:

{
    "took": 17,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 4,
        "max_score": 0,
        "hits": []
    },
    "aggregations": {
        "group_by_tags": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "fangzhu",
                    "doc_count": 2
                },
                {
                    "key": "meibai",
                    "doc_count": 2
                },
                {
                    "key": "qingxin",
                    "doc_count": 1
                }
            ]
        }
    }
}

3、先分组,再计算每个分组的平均值

GET http://{{es-host}}/ecommerce/produce/_search
{
	"size":0,
	"aggs":{
		"group_by_tags":{
			"terms":{
				"field":"tags"
			},
			"aggs":{
				"avg_price":{
					"avg":{
						"field":"price"
					}
				}
			}
		}
	}
}

结果:

{
    "took": 83,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 4,
        "max_score": 0,
        "hits": []
    },
    "aggregations": {
        "group_by_tags": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "fangzhu",
                    "doc_count": 2,
                    "avg_price": {
                        "value": 27.5
                    }
                },
                {
                    "key": "meibai",
                    "doc_count": 2,
                    "avg_price": {
                        "value": 40
                    }
                },
                {
                    "key": "qingxin",
                    "doc_count": 1,
                    "avg_price": {
                        "value": 40
                    }
                }
            ]
        }
    }
}

上述内容就是ElasticSearch中group by + avg + sort等聚合分析是什么样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. docker启动elasticsearch时内存不足怎么办
  2. 怎么在PHP中使用ElasticSearch实现搜索

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elasticsearch group by

上一篇:Redis系列中这么进行mac版本的安装

下一篇:如何使用Spring中@Validated分组校验

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》