src/Sulu/Bundle/SearchBundle/Controller/WebsiteSearchController.php
public function queryAction(Request $request)
    {
        $query = $this->getRequestParameter($request, 'q', true);

        $locale = $this->requestAnalyzer->getCurrentLocalization()->getLocale();
        $webspace = $this->requestAnalyzer->getWebspace();

        $queryString = '';
        if (strlen($query) < 3) {
            $queryString .= '+("' . self::escapeDoubleQuotes($query) . '") ';
        } else {
            $queryValues = explode(' ', $query);
            foreach ($queryValues as $queryValue) {
                if (strlen($queryValue) > 2) {
                    $queryString .= '+("' . self::escapeDoubleQuotes($queryValue) . '" OR ' .
                        '"' . preg_replace('/([^\pL\s\d])/u', '?', $queryValue) . '*" OR ' .
                        '"' . preg_replace('/([^\pL\s\d])/u', '', $queryValue) . '~") ';
                } else {
                    $queryString .= '+("' . self::escapeDoubleQuotes($queryValue) . '") ';
                }
            }
        }

        $hits = $this->searchManager
            ->createSearch($queryString)
            ->locale($locale)
            ->index('page_' . $webspace->getKey() . '_published')
            ->execute();

        $template = $webspace->getTemplate('search', $request->getRequestFormat());

        if (!$this->twig->getLoader()->exists($template)) {
            throw new NotFoundHttpException();
        }

        return new Response($this->twig->render(
            $template,
            $this->parameterResolver->resolve(
                ['query' => $query, 'hits' => $hits],
                $this->requestAnalyzer
            )
        ));
    }
public function queryAction(Request $request)
    {
        $query = $this->getRequestParameter($request, 'q', true);

        $locale = $this->requestAnalyzer->getCurrentLocalization()->getLocale();
        $webspace = $this->requestAnalyzer->getWebspace();

        $queryString = '';
        if (strlen($query) < 3) {
            $queryString .= '+("' . self::escapeDoubleQuotes($query) . '") ';
        } else {
            $queryValues = explode(' ', $query);
            foreach ($queryValues as $queryValue) {
                if (strlen($queryValue) > 2) {
                    $queryString .= '+("' . self::escapeDoubleQuotes($queryValue) . '" OR ' .
                        '"' . preg_replace('/([^\pL\s\d])/u', '?', $queryValue) . '*" OR ' .
                        '"' . preg_replace('/([^\pL\s\d])/u', '', $queryValue) . '~") ';
                } else {
                    $queryString .= '+("' . self::escapeDoubleQuotes($queryValue) . '") ';
                }
            }
        }

        $hits = $this->searchManager
            ->createSearch($queryString)
            ->locale($locale)
            ->index('page_' . $webspace->getKey() . '_published')
            ->execute();

        $template = $webspace->getTemplate('search', $request->getRequestFormat());

        if (!$this->twig->getLoader()->exists($template)) {
            throw new NotFoundHttpException();
        }

        return new Response($this->twig->render(
            $template,
            $this->parameterResolver->resolve(
                ['query' => $query, 'hits' => $hits],
                $this->requestAnalyzer
            )
        ));
    }
public function queryAction ( Request $ request ) { $ query = $ this -> getRequestParameter ( $ request , 'q' , true ) ; $ locale = $ this -> requestAnalyzer -> getCurrentLocalization ( ) -> getLocale ( ) ; $ webspace = $ this -> requestAnalyzer -> getWebspace ( ) ; $ queryString = '' ; if ( strlen ( $ query ) < 3 ) { $ queryString .= '+("' . self :: escapeDoubleQuotes ( $ query ) . '") ' ; } else { $ queryValues = explode ( ' ' , $ query ) ; foreach ( $ queryValues as $ queryValue ) { if ( strlen ( $ queryValue ) > 2 ) { $ queryString .= '+("' . self :: escapeDoubleQuotes ( $ queryValue ) . '" OR ' . '"' . preg_replace ( '/([^\pL\s\d])/u' , '?' , $ queryValue ) . '*" OR ' . '"' . preg_replace ( '/([^\pL\s\d])/u' , '' , $ queryValue ) . '~") ' ; } else { $ queryString .= '+("' . self :: escapeDoubleQuotes ( $ queryValue ) . '") ' ; } } } $ hits = $ this -> searchManager -> createSearch ( $ queryString ) -> locale ( $ locale ) -> index ( 'page_' . $ webspace -> getKey ( ) . '_published' ) -> execute ( ) ; $ template = $ webspace -> getTemplate ( 'search' , $ request -> getRequestFormat ( ) ) ; if ( ! $ this -> twig -> getLoader ( ) -> exists ( $ template ) ) { throw new NotFoundHttpException ( ) ; } return new Response ( $ this -> twig -> render ( $ template , $ this -> parameterResolver -> resolve ( [ 'query' => $ query , 'hits' => $ hits ] , $ this -> requestAnalyzer ) ) ) ; }
Returns the search results for the given query.

@param Request $request

@return Response
Returns the search results for the given query .