2017-02-28 5 views
0

Ok, je suis un peu confus.Ajouter un filtre à DateHistogram agrégation dans ruflin/elastica

je crée l'agrégation comme suit:

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

Maintenant dans cette agrégation, je veux appliquer le filtre de gamme à cette agrégation. (Clics avec le prix supérieur à 0).

Donc, je suis un peu confus comment le faire réellement? Il n'y a pas de méthode setFilter, ce que je pense serait le moyen de le faire.

Quelqu'un peut-il m'aider?

Répondre

0

trouvé moi-même, voici comment cela fonctionne:

  1. Créer un filtre:

    $filter = new Filter('paid', new Query\Range('price', ['gt' => 0])); 
    
  2. Créer l'agrégation:

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

  3. Ajouter agrégation pour filtrer:

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

La dernière étape retourne l'agrégation avec filtre appliqué. Ant ça marche comme prévu.