function field_apachesolr_index_document_build in Apache Solr Search 8
Same name and namespace in other branches
- 7 apachesolr.module \field_apachesolr_index_document_build()
Implements hook_apachesolr_index_document_build().
File
- ./
apachesolr.module, line 2144 - Integration with the Apache Solr search application.
Code
function field_apachesolr_index_document_build(ApacheSolrDocument $document, $entity, $entity_type) {
$info = entity_get_info($entity_type);
if ($info['fieldable']) {
// Handle fields including taxonomy.
$indexed_fields = apachesolr_entity_fields($entity_type);
foreach ($indexed_fields as $index_key => $nodefields) {
foreach ($nodefields as $field_info) {
$field_name = $field_info['field']['field_name'];
// See if the node has fields that can be indexed
if (isset($entity->{$field_name})) {
// Got a field.
$function = $field_info['indexing_callback'];
if ($function && function_exists($function)) {
// NOTE: This function should always return an array. One
// entity field may be indexed to multiple Solr fields.
$fields = $function($entity, $field_name, $index_key, $field_info);
foreach ($fields as $field) {
// It's fine to use this method also for single value fields.
$document
->setMultiValue($field['key'], $field['value']);
}
}
}
}
}
}
}