我有一个要求,我需要按照给定日期按地区和地区分组status_value。同样我写了一个查询,它并没有完全在ES中工作。如果有人对此进行调查并向我提供解决方案,那将是一个很大的帮助。
注意:我想得到最后一天(即前一天)的结果。
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"term": {
"UsagePoint_Asset_lifecycle_installationDate": "2014-07-13T16:55:00.0-07:00"
}
}
}
},
"aggs" : {
"product" : {
"terms" : {
"field" : "UsagePoint_ServiceLocation_region"
},
"aggs" : {
"material" : {
"terms" : {
"field" : "UsagePoint_status_value"
}
}
}
}
}
}
我的SQL查询可能如下所示:
select count(status_value)
from products
where date = "yesterday"
group by region , date
请检查以下查询是否正常,但我想获取特定日期或某些日期的值。
{
"agg1": {
"terms": {
"field":"UsagePoint_Asset_lifecycle_installationDate"
},
"aggs" : {
"product" : {
"terms" : {
"field" : "UsagePoint_ServiceLocation_region"
},
"aggs" : {
"material" : {
"terms" : {
"field" : "UsagePoint_status_value"
}
}
}
}
}
}
}
答案 0 :(得分:1)
如果您需要昨天的信息组,以下是一个解决方案。 对于任何其他自定义日期,请更改gte(大于或等于)和lt(小于)
中的值{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"UsagePoint_Asset_lifecycle_installationDate": {
"gte": "now-1d",
"lt": "now"
}
}
}
}
},
"aggs": {
"product": {
"terms": {
"field": "UsagePoint_ServiceLocation_region"
},
"aggs": {
"material": {
"terms": {
"field": "UsagePoint_status_value"
}
}
}
}
}
}