private function configureHighlightingForSource(&$config, $highlightSource)
 {
     global $wgCirrusSearchRegexMaxDeterminizedStates;
     $patterns = array();
     $locale = null;
     $caseInsensitive = false;
     foreach ($highlightSource as $part) {
         if (isset($part['pattern'])) {
             $patterns[] = $part['pattern'];
             $locale = $part['locale'];
             $caseInsensitive |= $part['insensitive'];
         }
     }
     if (count($patterns)) {
         $options = array('regex' => $patterns, 'locale' => $locale, 'regex_flavor' => 'lucene', 'skip_query' => true, 'regex_case_insensitive' => (bool) $caseInsensitive, 'max_determinized_states' => $wgCirrusSearchRegexMaxDeterminizedStates);
         $config['fields']['source_text.plain']['options'] = array_merge($config['fields']['source_text.plain']['options'], $options);
         return;
     }
     $queryStrings = array();
     foreach ($highlightSource as $part) {
         if (isset($part['query'])) {
             $queryStrings[] = $part['query'];
         }
     }
     if (count($queryStrings)) {
         $bool = new \Elastica\Query\Bool();
         foreach ($queryStrings as $queryString) {
             $bool->addShould($queryString);
         }
         $config['fields']['source_text.plain']['highlight_query'] = $bool->toArray();
     }
 }