我在查询中遇到了这个问题:
我们有一个包含所有已启动会话的索引,包含开始日期时间戳,MAC地址等。
我想检索在过去10分钟内开始会话的所有唯一mac,然后检查这些MAC是否是新的(在所有时间只有一个外观)或已经看过(可能是2个月前),并且已经看过多少次了。
例如,对最近10分钟看到的mac进行初始查询,我们得到MAC A和MAC B. MAC A有以前的文件(2个月前和12天前),MAC B没有以前的文件。结果应该是:MAC A - > 3,MAC B - > 1
我正在采用这种方法,但我能得到的是过去10分钟的MAC列表以及所有时间的另一个MAC列表:
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"product_type": {
"value": "FREE"
}
}
}
]
}
},
"aggs": {
"transactions": {
"filters": {
"filters": {
"display_range": {
"range": {
"start_timestamp": {
"from": "2017-05-17T09:00:00Z",
"to": "2017-05-17T09:10:00Z"
}
}
},
"all_days_range": {
"match_all": {}
}
}
},
"aggs": {
"unique_macs": {
"terms": {
"field": "calling_station_id",
"size": 0
}
}
}
}
}
}
谢谢!