我在分析中有一个场景,我想在1000多个网点中计算表现最差的20个网点,其中performance = transactionCount/ VisitCount
每个月都在一个网点。
映射是,
{
"CustomerVisit": {
"properties": {
"outlet": {
"type": "string",
"index": "not_analyzed"
},
"customerName": {
"type": "string",
"index": "not_analyzed"
},
"visitMonth": {
"type": "Date"
},
"visit": {
"type": "nested",
"properties": {
"visitStatus": {
"type": "long"
},
"transactionStatus": {
"type": "long"
},
"remarks": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
现在,我想要的是以这样一种方式聚合,即按照 visitStatus 的聚合与 transactionStatus 的聚合的比例,按照1000+的比例排列我20个。< / p>
我找不到使用aggs
解决问题的方法,我不知道脚本是否可以在这里实现。我即将实施的粗略解决方案是
通过visitCount汇总以上20个网点[另一个查询]
将count1除以count2以获得比率
但这永远不会给我正确的结果,因为我按最少的交易排序而不是交易/访问的比例。