function search_api_glossary_search_api_solr_documents_alter in Search API AZ Glossary 7
Same name and namespace in other branches
- 7.3 search_api_glossary.module \search_api_glossary_search_api_solr_documents_alter()
- 7.2 search_api_glossary.module \search_api_glossary_search_api_solr_documents_alter()
Alter Solr documents before they are sent to Solr for indexing.
Parameters
array $documents: An array of SearchApiSolrDocument objects ready to be indexed, generated from $items array.
SearchApiIndex $index: The search index for which items are being indexed.
array $items: An array of items being indexed.
File
- ./
search_api_glossary.module, line 79 - Search api glossary module file.
Code
function search_api_glossary_search_api_solr_documents_alter(array &$documents, SearchApiIndex $index, array $items) {
$searcher = 'search_api@' . $index->machine_name;
$fields = _search_api_glossary_get_field();
$field_names = $index
->server()
->getFieldNames($index);
foreach ($fields as $field) {
if ($facet = facetapi_facet_load($field, $searcher)) {
$adapter = facetapi_adapter_load($searcher);
$facet_settings = $adapter
->getFacetSettingsGlobal($facet);
$field_key = $facet['field'] . '_field';
if (!empty($facet_settings->settings[$field_key])) {
$source_field_key = $facet_settings->settings[$field_key];
foreach ($documents as $document) {
$source_field = $document
->getField($source_field_key);
$value = '';
if (is_string($source_field['value']) && drupal_strlen($source_field['value']) > 0) {
$first_letter = strtoupper($source_field['value'][0]);
$value = search_api_glossary_getter_helper($first_letter);
}
$document
->setField($field_names[$field], $value);
}
}
}
}
}