【问题标题】:Date histogram every half a month每半个月的日期直方图
【发布时间】:2018-10-02 10:28:56
【问题描述】:

如何编写每半个月分组的间隔?而不是 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

【问题讨论】:

    标签: elasticsearch elastica


    【解决方案1】:

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

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

    当然,它不会完全适合月份,即它不会在一个月的 1 日开始并在一个月的最后一天结束,但它可以让您接近您正在寻找的那种间隔。

    【讨论】:

    • 我不能让自己接近,它必须是完全相同的日子,但如果不可能,我需要考虑另一种方式,无论如何谢谢你:)
    • 您还可以使用date_range 聚合,您可以自己在其中指定边界。
    • 但是如果我每次手动限制它,它就不允许它手动计算几年的间隔:/
    猜你喜欢
    • 2020-10-06
    • 2020-10-30
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多