我最後寫像這樣用(由於ES的錯誤,直到我得到它的工作)
非常感謝您!它的工作,但不帶過濾器,但這個想法是一樣的 我做了這樣的事情:
{
"timeout" : 1500,
"query" : {
"bool" : {
"must" : [
{
"term" : {
"businessId" : "101598"
}
} ,
{
"range" : {
"date" : {
"from" : "2016-10-15T03:00:00.000Z",
"to" : "2016-10-31T03:00:00.000Z",
"include_lower" : true,
"include_upper" : true
}
}
}]
}
},
"aggs": {
"range_one": {
"date_range": {
"field": "date",
"ranges": [
{
"from": "2016-10-15T03:00:00.000Z",
"to": "2016-10-22T03:00:00.000Z"
}
]
},
"aggs": {
"sum_orders_sales": {
"sum": {
"field": "orders.totalSales"
}
}
}
},
"range_two": {
"date_range": {
"field": "date",
"ranges": [
{
"from": "2016-10-23T03:00:00.000Z",
"to": "2016-10-31T03:00:00.000Z"
}
]
},
"aggs": {
"sum_orders_count": {
"sum": {
"field": "orders.orderCount"
}
}
}
}
}
}
在我的情況下的性能和速度是重要的,因爲我的兩個範圍是連續的,我以爲我可以通過過濾假設聚合與查詢的結果一起工作,那麼business_id(我需要)以及從最早的日期(第一個範圍的開始日期)到最新日期(第二個範圍的結束日期)(否則,它將搜索所有文檔,只需要通過一個獲得的結果集對其進行聚合操作即可)。但我是ES新手,所以不確定我看到它是對的。然而,它的工作就像魅力! 非常感謝1
謝謝!基於你粘貼的東西,我結束了這樣的事情(下一篇文章) – user3049941
很高興我可以幫助 – ChintanShah25