如何编写一个每半个月分组的间隔?而不是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
答案 0 :(得分:0)
很遗憾,0.5M
(半个月)和2w
(2周)均不受支持,但是您可以尝试使用几天,即15d
。
$date_grp_agg->setField('date')->setFormat("MM-yy")->setInterval('15d');
当然,它不能完美地适应几个月的时间,也就是说,它不会在第一天开始,也不会在每月的最后一天结束,但是它可以使您接近所需的时间间隔。