示例#1
0
 /**
  * {@inheritdoc}
  */
 public function preProcessSearch(Search $search, Search $relatedSearch, FilterState $state = null)
 {
     $name = $state ? $state->getName() : $this->getField();
     $agg = new TermsAggregation($name);
     $agg->setField($this->getField());
     $search->addAggregation($agg);
 }
 /**
  * {@inheritdoc}
  */
 public function preProcessSearch(Search $search, Search $relatedSearch, FilterState $state = null)
 {
     $name = $state ? $state->getName() : $this->getField();
     $aggregation = new TermsAggregation($name);
     $aggregation->setField($this->getField());
     if ($this->getSortType()) {
         $aggregation->addParameter('order', [$this->getSortType()['type'] => $this->getSortType()['order']]);
     }
     $aggregation->addParameter('size', 0);
     if ($this->getSize() > 0) {
         $aggregation->addParameter('size', $this->getSize());
     }
     if ($relatedSearch->getPostFilters()) {
         $filterAggregation = new FilterAggregation($name . '-filter');
         $filterAggregation->setFilter($relatedSearch->getPostFilters());
         $filterAggregation->addAggregation($aggregation);
         $search->addAggregation($filterAggregation);
     } else {
         $search->addAggregation($aggregation);
     }
 }