2017-02-28 81 views
0

好吧,我有点困惑。在ruflin/elastica中添加过滤器到DateHistogram集合

创建聚集如下:

$aggregation = new DateHistogram('clicks_by_day', 'date', 'day'); 
$query->addAggregation($aggregation); 

现在,在这个集合,我想范围过滤器应用于此聚集。 (点击价格大于0)。

所以我有点困惑如何实际做到这一点?没有setFilter方法,我虽然会这样做。

任何人都可以帮助我吗?

回答

0

找到了自己,在这里是如何工作的:

  1. 创建过滤器:

    $filter = new Filter('paid', new Query\Range('price', ['gt' => 0])); 
    
  2. 创建聚集:

    $aggregation = new DateHistogram('clicks_by_day', 'date', 'day');

  3. 添加聚集过滤:

    $aggregation = $filter->addAggregation($aggregation);

最后一步返回施加滤波器的聚集。蚂蚁它按预期工作。