/**
  * List of the field used by the query.
  * For autocomplete we use only fields marked as used_in_autocomplete
  *
  * Warning : name field is weighted to 100. Should be configurable.
  *
  * @return array
  */
 public function getSearchFields()
 {
     $allSearchFields = parent::getSearchFields();
     $searchFields = array();
     foreach ($allSearchFields as $fieldName => $currentFieldConfig) {
         if ($currentFieldConfig['used_in_autocomplete']) {
             if ($fieldName == 'name_fr') {
                 $currentFieldConfig['weight'] = 100;
             }
             $searchFields[$fieldName] = $currentFieldConfig;
         }
     }
     return $searchFields;
 }
 /**
  * Retturn field used in edge_ngram matching
  *
  * @return array
  */
 public function getAutocompleSearchFields()
 {
     $analyzers = array('edge_ngram_front', 'edge_ngram_back');
     $allFields = parent::getSearchFields();
     $searchFields = array();
     foreach ($allFields as $fieldName => $currentField) {
         $fieldName = current(explode('.', $fieldName));
         if ($currentField['used_in_autocomplete']) {
             foreach ($analyzers as $analyzer) {
                 $searchFields[] = sprintf('%s.%s^%d', $fieldName, $analyzer, $currentField['weight']);
             }
         }
     }
     return $searchFields;
 }