public function tagCloudAction()
{
$search = $this->container->get('fos_elastica.index.search');
$searchQuery = new Query();
$searchQuery->setSize(0);
//get tags aggregation
$tagsAgg = new Aggregation\Terms('tags');
$tagsAgg->setField('tags');
$tagsAgg->setSize(500);
$searchQuery->addAggregation($tagsAgg);
/**
* @var ResultSet $results
*/
$results = $search->search($searchQuery);
$data['tags'] = [];
foreach ($results->getAggregations()['tags']['buckets'] as $result) {
$keys = array_filter(explode(',', $result['key']));
if (is_array($keys)) {
foreach ($keys as $key) {
$data['tags'][] = trim($key);
}
}
}
return $this->render('OjsSiteBundle:Search:tags_cloud.html.twig', $data);
}