You are here

function apachesolr_multisitesearch_generate_metadata in Apache Solr Multisite Search 6.3

Same name and namespace in other branches
  1. 7 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

ApacheSolrDocument

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 27

Code

function apachesolr_multisitesearch_generate_metadata() {
  module_load_include('php', 'apachesolr', 'Apache_Solr_Document');
  $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
  // We index each name as a string for cross-site faceting
  foreach (content_types() as $bundle => $bundle_info) {
    if (!empty($bundle_info['extra']['apachesolr']['index'])) {
      $document
        ->setMultiValue('sm_multisite_meta_bundles', $bundle_info['name']);
    }
  }

  // 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;
}