每半个月的日期直方图

时间:2018-10-02 10:28:56

标签: elasticsearch elastica

如何编写一个每半个月分组的间隔?而不是1M,我希望像1/2M这样的东西每个月从月的第一天到第16天以及从16日到月底进行分组。有办法吗?

我不想结束每一天的间隔时间,然后手动计算我的结果,因为它不干净并且会占用资源,请问有没有简单的方法使用setInterval? (在Elasticsearch或Elastica中,我不在乎,我只想要它背后的算法,谢谢!)

$date_grp_agg = new \Elastica\Aggregation\DateHistogram('date');
$date_grp_agg->setField('date')->setFormat("MM-yy")->setInterval('1M'); // This one

1 个答案:

答案 0 :(得分:0)

很遗憾,0.5M(半个月)和2w(2周)均不受支持,但是您可以尝试使用几天,即15d

$date_grp_agg->setField('date')->setFormat("MM-yy")->setInterval('15d');

当然,它不能完美地适应几个月的时间,也就是说,它不会在第一天开始,也不会在每月的最后一天结束,但是它可以使您接近所需的时间间隔。