public function proceedIndexInstall($indexName, $indexAlias)
{
$aliasActions = [['add' => ['index' => $indexName, 'alias' => $indexAlias]]];
$deletedIndices = [];
try {
$oldIndices = $this->client->indices()->getMapping(['index' => $indexAlias]);
} catch (\Elasticsearch\Common\Exceptions\Missing404Exception $e) {
$oldIndices = [];
}
foreach (array_keys($oldIndices) as $oldIndexName) {
if ($oldIndexName != $indexName) {
$deletedIndices[] = $oldIndexName;
$aliasActions[] = ['remove' => ['index' => $oldIndexName, 'alias' => $indexAlias]];
}
}
$this->client->indices()->updateAliases(['body' => ['actions' => $aliasActions]]);
foreach ($deletedIndices as $deletedIndex) {
$this->client->indices()->delete(['index' => $deletedIndex]);
}
}