You are here

function apachesolr_multisitesearch_retrieve_metadata in Apache Solr Multisite Search 6.3

Same name and namespace in other branches
  1. 7 apachesolr_multisitesearch.index.inc \apachesolr_multisitesearch_retrieve_metadata()
2 calls to apachesolr_multisitesearch_retrieve_metadata()
apachesolr_multisitesearch_delete_indexes in ./apachesolr_multisitesearch.admin.inc
Submit handler for the "Delete selected indexes" button.
apachesolr_multisitesearch_refresh_metadata in ./apachesolr_multisitesearch.index.inc

File

./apachesolr_multisitesearch.index.inc, line 63

Code

function apachesolr_multisitesearch_retrieve_metadata() {
  try {

    // Get the $solr object
    $solr = apachesolr_get_solr();
    $params['defType'] = 'lucene';
    $params['fl'] = '*';
    $response = $solr
      ->search('entity_type:multisite.meta', $params);
    foreach ($response->response->docs as $doc) {

      // Convert doc into a simple array.
      if (isset($doc->hash)) {
        foreach ($doc as $k => $v) {
          $data[$doc->hash][$k] = $v;
        }
        if (empty($data[$doc->hash]['sm_multisite_meta_taxonomy'])) {
          $data[$doc->hash]['sm_multisite_meta_taxonomy'] = array();
        }
        if (empty($data[$doc->hash]['sm_multisite_meta_bundles'])) {
          $data[$doc->hash]['sm_multisite_meta_bundles'] = array();
        }
      }
    }
    watchdog('Apache Solr Multisite', 'Fetched site meta data');
    variable_set('apachesolr_multisitesearch_metadata', $data);
  } catch (Exception $e) {
    watchdog('Apache Solr Multisite', 'Failed to fetch meta data <br /> !message', array(
      '!message' => nl2br(strip_tags($e
        ->getMessage())),
    ), WATCHDOG_ERROR);
  }
}