You are here

function apachesolr_multisitesearch_build_site_subquery in Apache Solr Multisite Search 7

Create a Solr query for a multisite search from an environment's settings.

Parameters

string $env_id: An Apache Solr environment ID.

Return value

DrupalSolrQueryInterface|bool A subquery object to apply, or FALSE if there were no filters to apply.

1 call to apachesolr_multisitesearch_build_site_subquery()
apachesolr_multisitesearch_apachesolr_query_alter in ./apachesolr_multisitesearch.module
Implements hook_apachesolr_query_alter().

File

./apachesolr_multisitesearch.module, line 227
Provides a multi-site search implementation for use with the Apache Solr module

Code

function apachesolr_multisitesearch_build_site_subquery($env_id) {
  $subquery = apachesolr_drupal_subquery();
  if (!apachesolr_environment_variable_get($env_id, 'multisitesearch', FALSE)) {

    // Limit single site searchs via the site hash.
    $subquery
      ->addFilter('hash', apachesolr_site_hash());
  }
  elseif ($sites = apachesolr_environment_variable_get($env_id, 'multisitesearch_sites', array())) {
    foreach ($sites as $site) {
      $subquery
        ->addFilter('hash', $site);
    }
  }
  return $subquery
    ->getFilters() ? $subquery : FALSE;
}