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

本篇文章为大家展示了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等聚合分析是什么样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享名称:ElasticSearch中groupby+avg+sort等聚合分析是什么样的
文章分享:http://hbruida.cn/article/ggdojc.html