Classes/Indexer/NodeIndexer.php
public function updateIndexAlias(): void
    {
        $aliasName = $this->searchClient->getIndexName(); // The alias name is the unprefixed index name
        if ($this->getIndexName() === $aliasName) {
            throw new Exception('UpdateIndexAlias is only allowed to be called when $this->setIndexNamePostfix has been created.', 1383649061);
        }

        if (!$this->getIndex()->exists()) {
            throw new Exception('The target index for updateIndexAlias does not exist. This shall never happen.', 1383649125);
        }

        $aliasActions = [];
        try {
            $indexNames = $this->indexDriver->indexesByAlias($aliasName);

            if ($indexNames === []) {
                // if there is an actual index with the name we want to use as alias, remove it now
                $this->indexDriver->deleteIndex($aliasName);
            } else {
                foreach ($indexNames as $indexName) {
                    $aliasActions[] = [
                        'remove' => [
                            'index' => $indexName,
                            'alias' => $aliasName
                        ]
                    ];
                }
            }
        } catch (ApiException $exception) {
            // in case of 404, do not throw an error...
            if ($exception->getResponse()->getStatusCode() !== 404) {
                throw $exception;
            }
        }

        $aliasActions[] = [
            'add' => [
                'index' => $this->getIndexName(),
                'alias' => $aliasName
            ]
        ];

        $this->indexDriver->aliasActions($aliasActions);
    }
public function updateIndexAlias(): void
    {
        $aliasName = $this->searchClient->getIndexName(); // The alias name is the unprefixed index name
        if ($this->getIndexName() === $aliasName) {
            throw new Exception('UpdateIndexAlias is only allowed to be called when $this->setIndexNamePostfix has been created.', 1383649061);
        }

        if (!$this->getIndex()->exists()) {
            throw new Exception('The target index for updateIndexAlias does not exist. This shall never happen.', 1383649125);
        }

        $aliasActions = [];
        try {
            $indexNames = $this->indexDriver->indexesByAlias($aliasName);

            if ($indexNames === []) {
                // if there is an actual index with the name we want to use as alias, remove it now
                $this->indexDriver->deleteIndex($aliasName);
            } else {
                foreach ($indexNames as $indexName) {
                    $aliasActions[] = [
                        'remove' => [
                            'index' => $indexName,
                            'alias' => $aliasName
                        ]
                    ];
                }
            }
        } catch (ApiException $exception) {
            // in case of 404, do not throw an error...
            if ($exception->getResponse()->getStatusCode() !== 404) {
                throw $exception;
            }
        }

        $aliasActions[] = [
            'add' => [
                'index' => $this->getIndexName(),
                'alias' => $aliasName
            ]
        ];

        $this->indexDriver->aliasActions($aliasActions);
    }
public function updateIndexAlias ( ) : void { $ aliasName = $ this -> searchClient -> getIndexName ( ) ; // The alias name is the unprefixed index name if ( $ this -> getIndexName ( ) === $ aliasName ) { throw new Exception ( 'UpdateIndexAlias is only allowed to be called when $this->setIndexNamePostfix has been created.' , 1383649061 ) ; } if ( ! $ this -> getIndex ( ) -> exists ( ) ) { throw new Exception ( 'The target index for updateIndexAlias does not exist. This shall never happen.' , 1383649125 ) ; } $ aliasActions = [ ] ; try { $ indexNames = $ this -> indexDriver -> indexesByAlias ( $ aliasName ) ; if ( $ indexNames === [ ] ) { // if there is an actual index with the name we want to use as alias, remove it now $ this -> indexDriver -> deleteIndex ( $ aliasName ) ; } else { foreach ( $ indexNames as $ indexName ) { $ aliasActions [ ] = [ 'remove' => [ 'index' => $ indexName , 'alias' => $ aliasName ] ] ; } } } catch ( ApiException $ exception ) { // in case of 404, do not throw an error... if ( $ exception -> getResponse ( ) -> getStatusCode ( ) !== 404 ) { throw $ exception ; } } $ aliasActions [ ] = [ 'add' => [ 'index' => $ this -> getIndexName ( ) , 'alias' => $ aliasName ] ] ; $ this -> indexDriver -> aliasActions ( $ aliasActions ) ; }
Update the index alias

@return void
@throws Exception
@throws ApiException
Update the index alias