You are here

function search_api_location_search_api_solr_query_alter in Search API Location 7

Implements hook_search_api_solr_query_alter()

File

./search_api_location.module, line 62
Search API Location module author: dolarchik (d.olaresko@madcap.nl)

Code

function search_api_location_search_api_solr_query_alter(array &$call_args, SearchApiQueryInterface $query) {
  if ($query
    ->getOption('query_type') == 'geo') {
    $params['qt'] = 'geo';
    $params['lat'] = $query
      ->getOption('lat');
    $params['long'] = $query
      ->getOption('lng');
    $params['radius'] = $query
      ->getOption('radius');
    $params['sort'] = 'geo_distance ' . $query
      ->getOption('sort');
    if (!is_null($call_args['query']) && !empty($call_args['params']['qf'])) {
      $call_args['params']['fq'][] = '{!dismax qf="' . implode(" ", $call_args['params']['qf']) . '"}' . $call_args['query'];
      $call_args['query'] = NULL;
    }
    unset($call_args['params']['qf']);
    $call_args['params'] = array_merge($params, $call_args['params']);
  }
}