我有一个字段cid
,我需要找到它的不同值。
但是我希望那些cid
满足我的日期范围约束。我的意思是,我希望在给定的时间范围内将不同的cid
添加到我的Elasticsearch数据库中。
我尝试了许多方法,其中大多数仅返回所有值,并且不进行汇总。
{
"aggs": {
"daterange": {
"range": {
"field": "@timestamp",
"ranges": [
{"from": "2019-05-02", "to": "2019-05-03"}
]
},
"aggs": {
"result": {
"terms": {
"field": "cid.keyword"
}
}
}
}
},
"_source":"cid"
}
我期望cid
的不同值,但是我得到的是符合时间范围的所有值。
更新:
将我的网址从/index/search?size=100
更改为/index/search
答案 0 :(得分:3)
您需要这样做,例如,添加日期range
作为查询以减少文档集,然后仅对属于该日期范围的文档运行terms
聚合:
{
"size": 0,
"query": {
"range": {
"@timestamp": {
"gte": "2019-05-02",
"lt": "2019-05-03"
}
}
},
"aggs": {
"result": {
"terms": {
"field": "cid.keyword"
}
}
}
}