function elasticsearch_connector_search_api_update_7001 in Elasticsearch Connector 7.5
Same name and namespace in other branches
- 7 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.install \elasticsearch_connector_search_api_update_7001()
- 7.2 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.install \elasticsearch_connector_search_api_update_7001()
Update Search API servers and indexes that use ElasticSearch.
File
- modules/
elasticsearch_connector_search_api/ elasticsearch_connector_search_api.install, line 37 - Install/unstall tasks for the Elasticsearch Connector Search API module.
Code
function elasticsearch_connector_search_api_update_7001() {
if (!function_exists('search_api_server_load_multiple')) {
return t('No Search API servers to update.');
}
$servers = search_api_server_load_multiple(FALSE);
$indexes = search_api_index_load_multiple(FALSE);
foreach ($indexes as $index) {
// If the index uses a server with our service class, then the server
// configuration needs to be updated.
if ($index->server && $servers[$index->server]->class == 'search_api_elasticsearch_connector') {
// Duplicate the old method of setting the ElasticSearch index name:
// concatenate the database name and the index machine name with a set
// prefix.
global $databases;
$site_database = $databases['default']['default']['database'];
$cluster_index_name = preg_replace('/[^A-Za-z0-9_]+/', '', 'elasticsearch_index_' . $site_database . '_' . $index->machine_name);
// If the server's cluster index name isn't set yet, update it.
if (empty($index->options['index_name'])) {
$server->options['cluster_index_name'] = $cluster_index_name;
$index->options['index_name'] = $cluster_index_name;
$index
->save();
}
}
}
return t('Updated Search API servers and indexes that use ElasticSearch. You may need to re-export Search API configuration features.');
}