public function search(SearchRequest $searchRequest)
    {
        $resultSet = $this->getInitializedSearchResultSet($searchRequest);
        $this->lastResultSet = $resultSet;

        $resultSet = $this->handleSearchHook('beforeSearch', $resultSet);
        if ($this->shouldReturnEmptyResultSetWithoutExecutedSearch($searchRequest)) {
            $resultSet->setHasSearched(false);
            return $resultSet;
        }

        $query = $this->queryBuilder->buildSearchQuery($searchRequest->getRawUserQuery(), (int)$searchRequest->getResultsPerPage(), $searchRequest->getAdditionalFilters());
        $this->initializeRegisteredSearchComponents($query, $searchRequest);
        $resultSet->setUsedQuery($query);

        // performing the actual search, sending the query to the Solr server
        $query = $this->modifyQuery($query, $searchRequest, $this->search);
        $response = $this->doASearch($query, $searchRequest);

        if ((int)$searchRequest->getResultsPerPage() === 0) {
            // when resultPerPage was forced to 0 we also set the numFound to 0 to hide results, e.g.
            // when results for the initial search should not be shown.
            $response->response->numFound = 0;
        }

        $resultSet->setHasSearched(true);
        $resultSet->setResponse($response);

        $this->getParsedSearchResults($resultSet);

        $resultSet->setUsedAdditionalFilters($this->queryBuilder->getAdditionalFilters());

        /** @var $variantsProcessor VariantsProcessor */
        $variantsProcessor = GeneralUtility::makeInstance(
            VariantsProcessor::class,
            /** @scrutinizer ignore-type */ $this->typoScriptConfiguration,
            /** @scrutinizer ignore-type */ $this->searchResultBuilder
        );
        $variantsProcessor->process($resultSet);

        /** @var $searchResultReconstitutionProcessor ResultSetReconstitutionProcessor */
        $searchResultReconstitutionProcessor = GeneralUtility::makeInstance(ResultSetReconstitutionProcessor::class);
        $searchResultReconstitutionProcessor->process($resultSet);

        $resultSet = $this->getAutoCorrection($resultSet);

        return $this->handleSearchHook('afterSearch', $resultSet);
    }
public function search(SearchRequest $searchRequest)
    {
        $resultSet = $this->getInitializedSearchResultSet($searchRequest);
        $this->lastResultSet = $resultSet;

        $resultSet = $this->handleSearchHook('beforeSearch', $resultSet);
        if ($this->shouldReturnEmptyResultSetWithoutExecutedSearch($searchRequest)) {
            $resultSet->setHasSearched(false);
            return $resultSet;
        }

        $query = $this->queryBuilder->buildSearchQuery($searchRequest->getRawUserQuery(), (int)$searchRequest->getResultsPerPage(), $searchRequest->getAdditionalFilters());
        $this->initializeRegisteredSearchComponents($query, $searchRequest);
        $resultSet->setUsedQuery($query);

        // performing the actual search, sending the query to the Solr server
        $query = $this->modifyQuery($query, $searchRequest, $this->search);
        $response = $this->doASearch($query, $searchRequest);

        if ((int)$searchRequest->getResultsPerPage() === 0) {
            // when resultPerPage was forced to 0 we also set the numFound to 0 to hide results, e.g.
            // when results for the initial search should not be shown.
            $response->response->numFound = 0;
        }

        $resultSet->setHasSearched(true);
        $resultSet->setResponse($response);

        $this->getParsedSearchResults($resultSet);

        $resultSet->setUsedAdditionalFilters($this->queryBuilder->getAdditionalFilters());

        /** @var $variantsProcessor VariantsProcessor */
        $variantsProcessor = GeneralUtility::makeInstance(
            VariantsProcessor::class,
            /** @scrutinizer ignore-type */ $this->typoScriptConfiguration,
            /** @scrutinizer ignore-type */ $this->searchResultBuilder
        );
        $variantsProcessor->process($resultSet);

        /** @var $searchResultReconstitutionProcessor ResultSetReconstitutionProcessor */
        $searchResultReconstitutionProcessor = GeneralUtility::makeInstance(ResultSetReconstitutionProcessor::class);
        $searchResultReconstitutionProcessor->process($resultSet);

        $resultSet = $this->getAutoCorrection($resultSet);

        return $this->handleSearchHook('afterSearch', $resultSet);
    }
public function search ( SearchRequest $ searchRequest ) { $ resultSet = $ this -> getInitializedSearchResultSet ( $ searchRequest ) ; $ this -> lastResultSet = $ resultSet ; $ resultSet = $ this -> handleSearchHook ( 'beforeSearch' , $ resultSet ) ; if ( $ this -> shouldReturnEmptyResultSetWithoutExecutedSearch ( $ searchRequest ) ) { $ resultSet -> setHasSearched ( false ) ; return $ resultSet ; } $ query = $ this -> queryBuilder -> buildSearchQuery ( $ searchRequest -> getRawUserQuery ( ) , ( int ) $ searchRequest -> getResultsPerPage ( ) , $ searchRequest -> getAdditionalFilters ( ) ) ; $ this -> initializeRegisteredSearchComponents ( $ query , $ searchRequest ) ; $ resultSet -> setUsedQuery ( $ query ) ; // performing the actual search, sending the query to the Solr server $ query = $ this -> modifyQuery ( $ query , $ searchRequest , $ this -> search ) ; $ response = $ this -> doASearch ( $ query , $ searchRequest ) ; if ( ( int ) $ searchRequest -> getResultsPerPage ( ) === 0 ) { // when resultPerPage was forced to 0 we also set the numFound to 0 to hide results, e.g. // when results for the initial search should not be shown. $ response -> response -> numFound = 0 ; } $ resultSet -> setHasSearched ( true ) ; $ resultSet -> setResponse ( $ response ) ; $ this -> getParsedSearchResults ( $ resultSet ) ; $ resultSet -> setUsedAdditionalFilters ( $ this -> queryBuilder -> getAdditionalFilters ( ) ) ; /** @var $variantsProcessor VariantsProcessor */ $ variantsProcessor = GeneralUtility :: makeInstance ( VariantsProcessor :: class , /** @scrutinizer ignore-type */ $ this -> typoScriptConfiguration , /** @scrutinizer ignore-type */ $ this -> searchResultBuilder ) ; $ variantsProcessor -> process ( $ resultSet ) ; /** @var $searchResultReconstitutionProcessor ResultSetReconstitutionProcessor */ $ searchResultReconstitutionProcessor = GeneralUtility :: makeInstance ( ResultSetReconstitutionProcessor :: class ) ; $ searchResultReconstitutionProcessor -> process ( $ resultSet ) ; $ resultSet = $ this -> getAutoCorrection ( $ resultSet ) ; return $ this -> handleSearchHook ( 'afterSearch' , $ resultSet ) ; }
Performs a search and returns a SearchResultSet.

@param SearchRequest $searchRequest
@return SearchResultSet
Performs a search and returns a SearchResultSet .