function apachesolr_multisitesearch_generate_metadata in Apache Solr Multisite Search 7
Same name and namespace in other branches
- 6.3 apachesolr_multisitesearch.index.inc \apachesolr_multisitesearch_generate_metadata()
 
Create a document to send to the index that contains useful information regarding the website.
Return value
1 call to apachesolr_multisitesearch_generate_metadata()
- apachesolr_multisitesearch_update_metadata in ./
apachesolr_multisitesearch.index.inc  - Creation of update of the metadata
 
File
- ./
apachesolr_multisitesearch.index.inc, line 26  
Code
function apachesolr_multisitesearch_generate_metadata() {
  $document = new ApacheSolrDocument();
  $document->id = apachesolr_document_id(1, 'multisite.metadata');
  $document->site = url(NULL, array(
    'absolute' => TRUE,
  ));
  $document->hash = apachesolr_site_hash();
  $document->entity_id = 1;
  $document->entity_type = 'multisite.meta';
  $document->ss_multisite_meta_sitename = variable_get('site_name', 'Drupal');
  // Only refresh for the default environment
  $env_id = apachesolr_default_environment();
  // Add bundle information to our metadata
  foreach (entity_get_info() as $entity_type => $info) {
    // We index each name as a string for cross-site faceting
    foreach ($info['bundles'] as $bundle => $bundle_info) {
      if (!empty($bundle_info['apachesolr']['index'])) {
        $document
          ->setMultiValue('sm_multisite_meta_bundles', $bundle_info['label']);
      }
    }
  }
  // Add taxonomy to our metadata
  if (module_exists('taxonomy')) {
    module_load_include('inc', 'apachesolr', 'apachesolr.index');
    $vocabs = taxonomy_get_vocabularies();
    foreach ($vocabs as $vid => $vocab) {
      // We index each name as a string for cross-site faceting
      // using the vocab name rather than vid in field construction.
      $document
        ->setMultiValue('sm_multisite_meta_taxonomy', apachesolr_vocab_name($vid));
    }
  }
  // Allow alterations to this meta data
  drupal_alter('apachesolr_multisitesearch_metadata', $document);
  return $document;
}