商品索引重建失败:

Limit of total fields [1000] has been exceeded

把上限从 1000 改成 5000 可能立刻成功,也可能让集群内存和 mapping 状态继续膨胀。先回答“这些字段为什么进入索引”。

查看实际Mapping规模

curl -s 'http://opensearch:9200/magento_product_*/_mapping' > mapping.json
curl -s 'http://opensearch:9200/_cluster/stats?filter_path=indices.mappings'

按属性代码统计字段,尤其找带随机后缀、Store ID、选项 ID 的动态字段。正常的 Magento 属性增长是可解释的;第三方扩展把 JSON 每个键展开成新字段,会让数量随商品数据无限增长。

属性配置也要做减法

检查大量历史属性是否仍被标记为可搜索、用于分层导航或参与搜索权重。禁用不需要的搜索用途不会删除业务数据,却能减少新索引文档和 mapping 负担。先在测试索引验证查询功能,再调整生产。

什么时候可以提高上限

确认字段都属于真实业务需要、节点有足够 heap、集群状态稳定时,可以适度提高 index 级限制,并记录容量依据。但它应与清理动态 mapping、属性治理一起完成。

Magento 重建索引通常创建新索引再切 alias。修复后确认新索引 mapping 数量下降、alias 已切换、旧索引按保留策略清理。最后测试全文搜索、筛选、多 Store 和增量更新;一次全量 reindex 成功不代表动态字段不会再次增长。