/** * Performs special search initialization for the result plugin. * */ protected function initializeSearch() { parent::initializeSearch(); $rawUserQuery = $this->getRawUserQuery(); /* @var $query Query */ $query = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Query', $rawUserQuery); $this->initializeAdditionalFilters($query); // TODO check whether a search has been conducted already? if ($this->solrAvailable && (isset($rawUserQuery) || $this->conf['search.']['initializeWithEmptyQuery'] || $this->conf['search.']['initializeWithQuery'])) { if ($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_solr.']['logging.']['query.']['searchWords']) { GeneralUtility::devLog('received search query', 'solr', 0, array($rawUserQuery)); } $resultsPerPage = $this->getNumberOfResultsPerPage(); $query->setResultsPerPage($resultsPerPage); $searchComponents = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Solr\\Search\\SearchComponentManager')->getSearchComponents(); foreach ($searchComponents as $searchComponent) { $searchComponent->setSearchConfiguration($this->conf['search.']); if ($searchComponent instanceof QueryAware) { $searchComponent->setQuery($query); } if ($searchComponent instanceof PluginAware) { $searchComponent->setParentPlugin($this); } $searchComponent->initializeSearchComponent(); } if ($this->conf['search.']['initializeWithEmptyQuery'] || $this->conf['search.']['query.']['allowEmptyQuery']) { // empty main query, but using a "return everything" // alternative query in q.alt $query->setAlternativeQuery('*:*'); } if ($this->conf['search.']['initializeWithQuery']) { $query->setAlternativeQuery($this->conf['search.']['initializeWithQuery']); } foreach ($this->additionalFilters as $additionalFilter) { $query->addFilter($additionalFilter); } $this->query = $query; } }
/** * Performs special search initialization for the result plugin. * */ protected function initializeSearch() { parent::initializeSearch(); $this->initializeAdditionalFilters(); }