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