/**
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function indexAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $params = $request->get('search');
     $vertical = NULL;
     /* SEO */
     $url_parsed = parse_url($request->getUri());
     $url_path = $url_parsed['path'];
     if (isset($url_parsed['query'])) {
         $url_path .= '?' . $url_parsed['query'];
     }
     $post_parameters = $this->getPostParameters($request);
     $adSearchUrl = $this->get('rmc_core.ad_search_url_service');
     $adSearchUrl->parseUrl($url_path, $post_parameters);
     $urlFilters = $adSearchUrl->getFilters();
     $niceUrl = $adSearchUrl->getNiceUrlByFilters($urlFilters);
     $filters = $adSearchUrl->getNiceFilters();
     // redirect to smart url
     if ($adSearchUrl->is302 && $niceUrl != '/') {
         return $this->redirect($this->container->get('kernel')->getEnvironment() == 'dev' ? '/app_dev.php' . $niceUrl : $niceUrl);
     }
     //print_r($filters);exit;
     //echo 'NICE URL '.$adSearchUrl->getNiceUrlAdding(array('category1' => 2), $filters);
     if (isset($filters['vertical'])) {
         $vertical = $em->getRepository('Entity:Vertical')->find($filters['vertical']);
     }
     $searchManager = AdSearchFactory::getSearchManager($this->container, $vertical ? $vertical->getCode() : '');
     // choose based on search parameter otherwise use 'Ad'
     $filters['select'] = array('id');
     $filters['facet'] = true;
     // display the total number of documents found by solr
     $query = $searchManager->getSolrSearchService()->getQueryByCriteria($filters, NULL, true);
     $solrRegistry = $this->get('solarium.client_registry');
     $client = $solrRegistry->getClient('rmcslave');
     $pager = array($client, $query);
     $paginator = $this->get('knp_paginator');
     $resultset = $paginator->paginate($pager, $request->get('page', 1), $request->get('page_range', 10));
     $resultsetFacet = $resultset->getCustomParameter('result');
     $documents = $resultset->getItems();
     $data = $resultset->getPaginationData();
     $facets = $searchManager->getSolrSearchService()->getFacetFields($resultsetFacet);
     $facetBuilder = new AdSearchFacetBulderService($this->getDoctrine()->getManager(), $facets, $adSearchUrl);
     $niceFacets = $facetBuilder->getNiceFacets();
     //print_r($niceFacets);exit;
     //echo $documents->getTotalItemCount();exit;
     //echo 'NumFound: '.$resultset->getNumFound();exit;
     /*
             foreach ($documents as $doc)
             {
                 echo 'ID '.$doc->id."<br />";
             }*/
     $ids = RmcHelpers::getPrimaryKeys($documents);
     $ads = $em->getRepository('Entity:Ad')->findById($ids);
     $noLayout = $request->headers->get('X-PJAX') ? true : false;
     if ($noLayout) {
         return $this->render('RmcCoreAdSearchBundle:Default:pjaxIndex.html.twig', array('ads' => $ads, 'documents' => $documents, 'paginator' => $resultset, 'facetFields' => $niceFacets, 'noLayout' => $noLayout));
     } else {
         return $this->render('RmcCoreAdSearchBundle:Default:index.html.twig', array('ads' => $ads, 'documents' => $documents, 'paginator' => $resultset, 'facetFields' => $niceFacets, 'noLayout' => $noLayout));
     }
 }