public function catsucheAction($catid, Request $request) { $em = $this->getDoctrine()->getManager(); $mainCat = []; $page = 0; $pageOffset = 0; if ($request->query->get('p')) { $page = $request->query->get('p'); $pageOffset = ($page - 1) * 12; } $finder = $this->container->get('fos_elastica.finder.search.articles'); $boolQuery = new \Elastica\Query\BoolQuery(); if ($request->query->get('q') !== NULL) { $searchTerm = $request->query->get('q'); $fieldQuery = new \Elastica\Query\MultiMatch(); $fieldQuery->setFields(array('shortName', 'shortDescription', 'longDescription')); $fieldQuery->setAnalyzer('custom_search_analyzer'); $fieldQuery->setOperator('AND'); $fieldQuery->setQuery($searchTerm); $boolQuery->addMust($fieldQuery); } $categoryQuery = new \Elastica\Query\Terms(); $categoryQuery->setTerms('catRef', array($catid)); $boolQuery->addMust($categoryQuery); $query = new \Elastica\Query(); $query->setQuery($boolQuery); $query->setSize(10000000); $totalpages = ceil(count($finder->find($query)) / 12); $query->setSize(12); $query->setFrom($pageOffset); $articles = $finder->find($query); return $this->render('OrthIndexBundle:Shop:kategorien.html.twig', array('articles' => $articles, 'page' => $page, 'totalpages' => $totalpages, 'categories' => $mainCat)); }