/**
  * @return float[]
  */
 public static function getDefaultBoostTemplates()
 {
     static $defaultBoostTemplates = null;
     if ($defaultBoostTemplates === null) {
         $source = wfMessage('cirrussearch-boost-templates')->inContentLanguage();
         $defaultBoostTemplates = array();
         if (!$source->isDisabled()) {
             $lines = Util::parseSettingsInMessage($source->plain());
             $defaultBoostTemplates = self::parseBoostTemplates(implode(' ', $lines));
             // Now parse the templates
         }
     }
     return $defaultBoostTemplates;
 }
 /**
  * @return float[]
  */
 public static function getDefaultBoostTemplates()
 {
     if (self::$defaultBoostTemplates === null) {
         $cache = \ObjectCache::newAccelerator(CACHE_NONE);
         self::$defaultBoostTemplates = $cache->getWithSetCallback($cache->makeKey('cirrussearch-boost-templates'), 600, function () {
             $source = wfMessage('cirrussearch-boost-templates')->inContentLanguage();
             if (!$source->isDisabled()) {
                 $lines = Util::parseSettingsInMessage($source->plain());
                 return Util::parseBoostTemplates(implode(' ', $lines));
                 // Now parse the templates
             }
             return array();
         });
     }
     return self::$defaultBoostTemplates;
 }
 /**
  * Extract more like this settings from the i18n message cirrussearch-morelikethis-settings
  */
 private static function overrideMoreLikeThisOptionsFromMessage()
 {
     global $wgCirrusSearchMoreLikeThisConfig, $wgCirrusSearchMoreLikeThisUseFields, $wgCirrusSearchMoreLikeThisAllowedFields, $wgCirrusSearchMoreLikeThisMaxQueryTermsLimit, $wgCirrusSearchMoreLikeThisFields;
     $cache = \ObjectCache::newAccelerator(CACHE_NONE);
     $lines = $cache->getWithSetCallback($cache->makeKey('cirrussearch-morelikethis-settings'), 600, function () {
         $source = wfMessage('cirrussearch-morelikethis-settings')->inContentLanguage();
         if ($source && $source->isDisabled()) {
             return array();
         }
         return Util::parseSettingsInMessage($source->plain());
     });
     foreach ($lines as $line) {
         list($k, $v) = explode(':', $line, 2);
         switch ($k) {
             case 'min_doc_freq':
             case 'max_doc_freq':
             case 'max_query_terms':
             case 'min_term_freq':
             case 'min_word_len':
             case 'max_word_len':
                 if (is_numeric($v) && $v >= 0) {
                     $wgCirrusSearchMoreLikeThisConfig[$k] = intval($v);
                 } else {
                     if ($v === 'null') {
                         unset($wgCirrusSearchMoreLikeThisConfig[$k]);
                     }
                 }
                 break;
             case 'percent_terms_to_match':
                 if (is_numeric($v) && $v > 0 && $v <= 1) {
                     $wgCirrusSearchMoreLikeThisConfig[$k] = $v;
                 } else {
                     if ($v === 'null') {
                         unset($wgCirrusSearchMoreLikeThisConfig[$k]);
                     }
                 }
                 break;
             case 'fields':
                 $wgCirrusSearchMoreLikeThisFields = array_intersect(array_map('trim', explode(',', $v)), $wgCirrusSearchMoreLikeThisAllowedFields);
                 break;
             case 'use_fields':
                 if ($v === 'true') {
                     $wgCirrusSearchMoreLikeThisUseFields = true;
                 } else {
                     if ($v === 'false') {
                         $wgCirrusSearchMoreLikeThisUseFields = false;
                     }
                 }
                 break;
         }
         if ($wgCirrusSearchMoreLikeThisConfig['max_query_terms'] > $wgCirrusSearchMoreLikeThisMaxQueryTermsLimit) {
             $wgCirrusSearchMoreLikeThisConfig['max_query_terms'] = $wgCirrusSearchMoreLikeThisMaxQueryTermsLimit;
         }
     }
 }
 private function getIgnoredHeadings()
 {
     static $ignoredHeadings = null;
     if ($ignoredHeadings === null) {
         $source = wfMessage('cirrussearch-ignored-headings')->inContentLanguage();
         $ignoredHeadings = array();
         if (!$source->isDisabled()) {
             $lines = Util::parseSettingsInMessage($source->plain());
             $ignoredHeadings = $lines;
             // Now we just have headings!
         }
     }
     return $ignoredHeadings;
 }