Beispiel #1
0
 /**
  * Performs special search initialization for the result plugin.
  *
  * @see Tx_Solr_PluginBase_PluginBase#initializeSearch()
  */
 protected function initializeSearch()
 {
     parent::initializeSearch();
     $this->initializeAdditionalFilters();
 }
Beispiel #2
0
 /**
  * Performs special search initialization for the result plugin.
  *
  * @see Tx_Solr_pluginbase_PluginBase#initializeSearch()
  */
 protected function initializeSearch()
 {
     parent::initializeSearch();
     $this->initializeAdditionalFilters();
     $rawUserQuery = $this->getRawUserQuery();
     // 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']) {
             \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('received search query', 'solr', 0, array($rawUserQuery));
         }
         $query = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Solr_Query', $rawUserQuery);
         /* @var	$query	Tx_Solr_Query */
         $resultsPerPage = $this->getNumberOfResultsPerPage();
         $query->setResultsPerPage($resultsPerPage);
         $searchComponents = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('Tx_Solr_Search_SearchComponentManager')->getSearchComponents();
         foreach ($searchComponents as $searchComponent) {
             $searchComponent->setSearchConfiguration($this->conf['search.']);
             if ($searchComponent instanceof Tx_Solr_QueryAware) {
                 $searchComponent->setQuery($query);
             }
             if ($searchComponent instanceof Tx_Solr_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;
     }
 }