搜索偶发空白但分类页正常,重建 catalogsearch_fulltext 后马上恢复,我会先查 Magento 当前索引别名指向的物理索引,而不是直接把问题归咎于缓存。

先在OpenSearch里看alias和index是否同时存在

curl -s 'http://opensearch:9200/_cat/aliases?v'
curl -s 'http://opensearch:9200/_cat/indices?v'

正常情况下,Magento 使用的 alias 应指向一个存在且 health 正常的索引。若 alias 指向的索引刚被外部清理任务删除,应用查询会失败;若多个部署同时重建,也可能出现别名切换竞争。

对照Magento日志里的真实索引名

打开搜索请求对应的 exception.log,记录 index_not_found_exception 或 429 的索引名,再检查配置:

php bin/magento config:show catalog/search/engine
php bin/magento indexer:status catalogsearch_fulltext

确认不同环境没有共用同一个 OpenSearch index prefix。测试、预发布和生产共用前缀时,一个环境重建或清理会误伤另一个环境。

修正前缀或外部生命周期策略后,只让一个发布任务执行完整 reindex:

php bin/magento indexer:reindex catalogsearch_fulltext

随后再次查看 alias,确认它稳定指向新索引,并连续请求多个关键词。不要把“重建一次恢复”当永久修复,必须找到是谁删除索引或抢着切 alias。