按自定义日期分组

group by custom date

我想 "group by" 我的结果按年份和月份使用格式为 YYYY-MM-DD。我想按月对它们进行分组,因此格式为 YYYY-MM 。我尝试使用 Terms 聚合对它们进行分组,但无济于事,所以现在我查看了 DateHistogram 聚合并尝试了以下方法,但它仍然不起作用。

$date_grp_agg = new \Elastica\Aggregation\DateHistogram('achats_date');
$date_grp_agg->setField('achats_date')->setFormat("MM-yyy")->setInterval('1');

你们知道如何使用格式化日期字段正确分组我的结果吗?

答案很简单

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

要按月分组,您需要设置 1 个月的间隔,这样每个月都会过滤结果。

来源:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html