public function SearchApiElasticsearchConnector::addIndex in Elasticsearch Connector 7.2
Same name and namespace in other branches
- 7.5 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::addIndex()
- 7 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::addIndex()
Overrides addIndex().
Overrides SearchApiAbstractService::addIndex
1 call to SearchApiElasticsearchConnector::addIndex()
- SearchApiElasticsearchConnector::deleteItems in modules/
elasticsearch_connector_search_api/ service.inc - Overrides deleteItems().
File
- modules/
elasticsearch_connector_search_api/ service.inc, line 270 - Provides a Elasticsearch-based service class for the Search API using Elasticsearch Connector module.
Class
- SearchApiElasticsearchConnector
- Search service class.
Code
public function addIndex(SearchApiIndex $index) {
$index_name = $this
->getIndexName($index);
if (!empty($index_name)) {
try {
$client = $this->elasticsearchClient;
if (!$client
->indices()
->exists(array(
'index' => $index_name,
))) {
// TODO: This needs to be handled differently because the >2.0.0
// needs index recreation!
if (!empty($index->force_create)) {
$params = array(
'index' => $index_name,
'body' => array(
'settings' => array(
'number_of_shards' => $index->force_create['number_of_shards'],
'number_of_replicas' => $index->force_create['number_of_replicas'],
),
),
);
drupal_alter('elasticsearch_connector_search_api_add_index', $index, $params);
$response = $client
->indices()
->create($params);
if (!elasticsearch_connector_check_response_ack($response)) {
drupal_set_message(t('The elasticsearch client wasn\'t able to create index'), 'error');
}
}
else {
throw new SearchApiElasticsearchConnectorException(t('The index you have selected, does not exist.'));
}
}
// Update mapping.
$this
->fieldsUpdated($index);
} catch (Exception $e) {
drupal_set_message($e
->getMessage(), 'error');
}
}
}