Categoria abrindo vazia, busca sem resultado nenhum e o painel do Magento 2.4.8 avisando Could not ping search engine. Please check the connection and try again. Antes de sair mexendo em configuração, pergunte direto ao motor de busca se ele está vivo:
curl -s http://localhost:9200
curl -s "http://localhost:9200/_cluster/health?pretty"
sudo systemctl status opensearch --no-pager
Se não voltar nada, o serviço caiu ou está escutando em outra interface, e o resto do post não importa: suba o OpenSearch primeiro. Com o plugin de segurança ligado o teste é curl -k -u usuario:senha https://localhost:9200, senão você lê recusa de conexão e culpa o serviço errado. Voltando o JSON com nome do cluster e versão, o motor está de pé e o problema é o que o Magento tem gravado pra falar com ele.
O bloco fica no app/etc/env.php
Procure o caminho system, default, catalog, search. O prefixo das chaves acompanha o motor escolhido:
'catalog' => [
'search' => [
'engine' => 'opensearch',
'opensearch_server_hostname' => 'localhost',
'opensearch_server_port' => '9200',
'opensearch_index_prefix' => 'magento2',
'opensearch_server_timeout' => '15',
],
],
Quem migrou de Elasticsearch 7 pra OpenSearch quase sempre esquece o campo engine. Com elasticsearch7 gravado ali, o Magento lê só as chaves de prefixo elasticsearch7 e ignora tudo que você escreveu com prefixo opensearch, apontando pra um servidor que já não existe. No 2.4.8 isso estoura sozinho depois do upgrade, porque o Elasticsearch 7 saiu da lista de motores suportados. E com o valor travado em arquivo, mexer no painel não muda nada.
Acertou o host, agora reindexe
bin/magento config:show catalog/search
bin/magento cache:clean config
bin/magento indexer:reset catalogsearch_fulltext
bin/magento indexer:reindex catalogsearch_fulltext
Enquanto o índice não termina, a vitrine segue vazia mesmo com o ping respondendo, então espere o comando voltar antes de comemorar.
Se travou nisso e precisa de ajuda, me chama aqui.