我正在编写一个查询来对文档进行计数,并按ModifyDateTime分组。该查询如下正常工作
{
"aggs" : {
"types_count" : {
"value_count" : { "field" : "id" }
},
"group_by_status": {
"terms": {
"field": "status.keyword"
}
}
}
}
此查询为我提供了以下适当的存储桶
"buckets": [
{
"key": "STARTED",
"doc_count": 579873
},
{
"key": "SENT",
"doc_count": 363026
},
现在我们的流程是这样的,一旦它的触发状态为STARTED,其下一个SEND,然后其AWATING_RESPONSE,然后进入COMPLETED,并且每次过程移至下一个状态时,其版本都会递增。
因此,基本上在上述查询中,我正在计数处于不同状态的所有进程,但是窍门是,STARTED进程也被计入SENT,因为它与不同版本的进程相同。
现在我要如何创建查询是要为我提供所有不同陈述的计数,但它应该仅考虑最新版本,而不是所有版本。
我尝试了以下类似的方法
{
"aggs" : {
"types_count" : {
"value_count" : { "field" : "id" }
},
"aggs" : {
"max_version" : { "max" : { "field" : "version" } }
},
"group_by_status": {
"terms": {
"field": "status.keyword"
}
}
}
}
但是它给了我这个错误
"root_cause": [
{
"type": "named_object_not_found_exception",
"reason": "[7:27] unable to parse BaseAggregationBuilder with name [max_version]: parser not found"
}
]
任何方法都可以实现吗?