/** * @group unit */ public function testSetExecution() { $filter = new Terms('color', array('blue', 'green')); $filter->setExecution('bool'); $this->assertEquals('bool', $filter->getParam('execution')); $returnValue = $filter->setExecution('bool'); $this->assertInstanceOf('Elastica\\Filter\\Terms', $returnValue); }
public function findByUserAndTags(User $user, $tags = null) { $filterQuery = new Query\Filtered(); $searchFilter = new Filter\Bool(); $searchFilter->addMust(new Filter\Term(array('user' => $user->getId()))); if (!empty($tags)) { $tagFilter = new Filter\Terms('tags', explode('+', $tags)); $tagFilter->setExecution('and'); $searchFilter->addMust($tagFilter); } $filterQuery->setFilter($searchFilter); $searchQuery = new Query($filterQuery); $searchQuery->addSort(array('createdAt' => 'desc')); $agg = new Aggregation\Terms('tags'); $agg->setField('tags')->setOrder('_count', 'desc')->setSize(100); $searchQuery->addAggregation($agg); return $searchQuery; }