public function SearchApiElasticsearchBackend::removeIndex in Elasticsearch Connector 8.7
Same name and namespace in other branches
- 8 src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php \Drupal\elasticsearch_connector\Plugin\search_api\backend\SearchApiElasticsearchBackend::removeIndex()
 - 8.2 src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php \Drupal\elasticsearch_connector\Plugin\search_api\backend\SearchApiElasticsearchBackend::removeIndex()
 - 8.5 src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php \Drupal\elasticsearch_connector\Plugin\search_api\backend\SearchApiElasticsearchBackend::removeIndex()
 - 8.6 src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php \Drupal\elasticsearch_connector\Plugin\search_api\backend\SearchApiElasticsearchBackend::removeIndex()
 
Removes an index from this server.
This might mean that the index has been deleted, or reassigned to a different server. If you need to distinguish between these cases, inspect $index->getServerId().
If the index wasn't added to the server previously, the method call should be ignored.
Implementations of this method should also check whether $index->isReadOnly() and don't delete any indexed data if it is.
Parameters
\Drupal\search_api\IndexInterface|string $index: Either an object representing the index to remove, or its ID (if the index was completely deleted).
Throws
\Drupal\search_api\SearchApiException Thrown if an error occurred while removing the index.
Overrides BackendPluginBase::removeIndex
1 call to SearchApiElasticsearchBackend::removeIndex()
- SearchApiElasticsearchBackend::deleteAllIndexItems in src/
Plugin/ search_api/ backend/ SearchApiElasticsearchBackend.php  - Deletes all the items from the index.
 
File
- src/
Plugin/ search_api/ backend/ SearchApiElasticsearchBackend.php, line 466  
Class
- SearchApiElasticsearchBackend
 - Elasticsearch Search API Backend definition.
 
Namespace
Drupal\elasticsearch_connector\Plugin\search_api\backendCode
public function removeIndex($index) {
  $index_entity = $index instanceof IndexInterface ? $index : $this->entityTypeManager
    ->getStorage('search_api_index')
    ->load($index);
  // Do not remove read-only indexes.
  if ($index_entity && $index_entity
    ->isReadOnly()) {
    return;
  }
  $params = $this->indexFactory
    ->index($index);
  try {
    if ($this->client
      ->indices()
      ->exists($params)) {
      $this->client
        ->indices()
        ->delete($params);
    }
  } catch (ElasticsearchException $e) {
    \Drupal::messenger()
      ->addError($e
      ->getMessage());
  }
}