elasticsearch嵌套查询聚合数据

先展示数据结构如下:

{
"itemId": "132417862061",
"site": "US",
"sellerId": "aaaaa",
"increamentId": "3753595",
"ebayTrackList": [
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2017-12-15"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2017-12-29"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-02-03"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-03-12"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-03-20"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-03-24"
	},
	{
		"numCount": 0,
		"pageView": 2,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-04-01"
	},
	{
		"numCount": 0,
		"pageView": 1,
		"userView": 1,
		"amountPaid": 0,
		"conversionRate": 0,
		"date": "2018-04-02"
	}
],
"publisher": "2714",
"title": "MOTOSPEED LED Backlight 87 keys Bluetooth Mechanical Keyboard Red Switches T1W8",
"sku": [
"C5060"
],
"img": "https://cache.yisu.com/upload/information/20200310/72/153898.jpg?set_id=8800005007",
"price": 55.05,
"status": 1,
"currency": "USD",
"createTime": "1512074612",
"updateTime": "1522694170",
"mark": null,
"fromCountry": "Shen Zhen",
"oldSku": null
}

目前的需求是假如我要知道2018-04-02,2018-04-03号的pageView之和,很明显需要ebayTrackList.date过滤求和ebayTrackList.pageView字段

语句如下

{
	"query":{
		"bool" : {
            		"must" : [
            			{
            				"term" : {"itemId":"132417862061"}
            			},
            			{
            				"nested" : {
            					"path" : "ebayTrackList",
            					"query" : {
            						"bool" : {
            							"must" : [
            								{ "terms" : {"ebayTrackList.date" : ["2018-04-03","2018-04-02"]} }
            							]
            						}
            					}
            				}
            			}
            		]
		}
	},
	"aggs":{
		"numTotalCount" : {
                        "nested" : {
                            "path" : "ebayTrackList"
                        },
                        "aggs" : {
                        	"sd_value" : {
                        		"filter" : { "terms" : {"ebayTrackList.date" : ["2018-04-03","2018-04-02"]} },
                        		"aggs" : {
                        			"sum_count" : { "sum" : { "field" : "ebayTrackList.pageView" } }
                        		}
                        	}
                        }
        }
	}
}

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/186870.html

(0)
上一篇 2021年11月4日
下一篇 2021年11月4日

相关推荐

发表回复

登录后才能评论