即時通訊使用elasticsearch aggregations
返回兩個不同的集合組,一個用於當前一週和前一週,我現在每週彙總如下:ElasticSearch extended_bounds最小值最大值
"aggregations": {
"current": {
"date_histogram": {
"field": "date",
"interval": "1d",
"min_doc_count": 0,
"extended_bounds": {
"min": new Date().setDate(new Date().getDate() - 7),
"max": new Date().getDate()
}
}
}
}
此時一切很好,即時使用min_doc_count
連同extended_bounds
填補空桶的空白,以防有空。
在我的其他聚合上我重複這個過程幾乎是一樣的方式,但我想我的桶是在前一段時間!
我知道extended_bounds
不過濾桶因此,我雖然對我的聚集頂部添加過濾器這樣的:
"aggregations": {
filtered: {
"filter" : {
"bool": {
"must": [{
"range" : {
date: {
from: new Date().setDate(new Date().getDate() - 14),
to: new Date().setDate(new Date().getDate() - 7)
}
}
}]
}
},
},
"previous": {
"date_histogram": {
"field": "date",
"interval": "1d",
"min_doc_count": 0,
"extended_bounds": {
"min": new Date().setDate(new Date().getDate() - 14),
"max": new Date().setDate(new Date().getDate() - 7)
}
}
}
}
第二個總應該回去的時間,整整14天數達至7天前。 我知道min
的作品,但max
沒有,直到今天,即使林使用過濾器來限制範圍, 即時使用must
在這裏,但似乎並沒有做任何事情返回桶。我對ES很陌生,也許我在這裏錯過了一些明顯的東西,請原諒我缺乏知識。
謝謝,我一定會考慮將它們嵌套在一個過濾器中,現在我在兩個查詢中運行兩個查詢,可能不是最有效的方法... – bmaggi 2014-11-02 22:35:03