/**
  * Performs special search initialization for the result plugin.
  *
  * @see	classes/pluginbase/tx_solr_pluginbase_PluginBase#initializeSearch()
  */
 protected function initializeSearch()
 {
     parent::initializeSearch();
     $this->initializeAdditionalFilters();
     // TODO check whether a search has been conducted already?
     if ($this->solrAvailable && (isset($this->piVars['q']) || $this->conf['search.']['allowEmptyQuery'])) {
         $this->piVars['q'] = trim($this->piVars['q']);
         if ($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_solr.']['logging.']['query.']['searchWords']) {
             t3lib_div::devLog('received search query', 'tx_solr', 0, array($this->piVars['q']));
         }
         $query = t3lib_div::makeInstance('tx_solr_Query', $this->piVars['q']);
         if (isset($this->conf['search.']['query.']['minimumMatch']) && strlen($this->conf['search.']['query.']['minimumMatch'])) {
             $query->setMinimumMatch($this->conf['search.']['query.']['minimumMatch']);
         }
         if (!empty($this->conf['search.']['query.']['boostFunction'])) {
             $query->setBoostFunction($this->conf['search.']['query.']['boostFunction']);
         }
         if (!empty($this->conf['search.']['query.']['boostQuery'])) {
             $query->setBoostQuery($this->conf['search.']['query.']['boostQuery']);
         }
         if ($this->conf['enableDebugMode']) {
             $query->setDebugMode();
         }
         if ($this->conf['search.']['highlighting']) {
             $query->setHighlighting(TRUE, $this->conf['search.']['highlighting.']['fragmentSize']);
         }
         if ($this->conf['search.']['spellchecking']) {
             $query->setSpellchecking();
         }
         if ($this->conf['search.']['faceting']) {
             $query->setFaceting();
             $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['modifySearchQuery']['faceting'] = 'EXT:solr/classes/query/modifier/class.tx_solr_query_modifier_faceting.php:tx_solr_query_modifier_Faceting';
         }
         // access
         $query->setUserAccessGroups(explode(',', $GLOBALS['TSFE']->gr_list));
         $query->setSiteHash(tx_solr_Util::getSiteHash());
         $language = 0;
         if ($GLOBALS['TSFE']->sys_language_uid) {
             $language = $GLOBALS['TSFE']->sys_language_uid;
         }
         $query->addFilter('language:' . $language);
         foreach ($this->additionalFilters as $additionalFilter) {
             $query->addFilter($additionalFilter);
         }
         // sorting
         if ($this->conf['searchResultsViewComponents.']['sorting']) {
             $query->setSorting();
         }
         $flexformSorting = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'sortBy', 'sQuery');
         if (!empty($flexformSorting)) {
             $query->addQueryParameter('sort', $flexformSorting);
         }
         $this->query = $query;
     }
 }
 /**
  * Performs special search initialization for the result plugin.
  *
  * @see	classes/pluginbase/tx_solr_pluginbase_PluginBase#initializeSearch()
  */
 protected function initializeSearch()
 {
     parent::initializeSearch();
     $this->initializeAdditionalFilters();
 }