对于ES 2.*关于这里或文档中的问题,我还没有找到任何关于这个的东西,如果这是一个副本的话,非常抱歉。
我要做的是在一个ElasticSearch查询中创建一个聚合,它将允许我根据两个日期字段之间的差异创建存储桶。
也就是说,如果我在ES中有一个商店的数据,我可能希望看到purchase_date字段和shipped_date字段之间的时间差。
所以在这种情况下,我想要创建一个有桶的聚合,当shipped_date - purchase_date是<1天、1-2天、3-4天或5+天时,给出点击量。
理想情况下,我希望这在ES查询中是可能的。是这样还是最好的方法是根据每次命中的时差将结果处理到我自己的数组中?
发布于 2017-02-15 09:51:32
我能够通过使用内置表达式语言来实现这一点,默认情况下在ES 2.4中启用该语言。我想要的功能是将我的结果分组,以显示EndDate与以15天递增处理的日期之间的差异。查询的相关部分是:
{
...,
"aggs": {
"reason": {
"date_histogram": {
"min_doc_count": 1,
"interval": "1296000000ms", // 15 days
"format": "epoch_millis",
"script": {
"lang": "expression",
"inline": "doc['DateProcessed'] > doc['EndDate'] ? doc['DateProcessed'] - doc['EndDate'] : -1"
}
}
...
}
}
https://stackoverflow.com/questions/40636560
复制相似问题