自定义模块改了analyzer配置,跑完catalogsearch_fulltext,搜索行为一点没变。先在OpenSearch里看当前别名指向哪个索引,再查那个索引的settings和mapping。代码改了不代表新索引真的按新配置创建。

curl -s http://127.0.0.1:9200/_cat/aliases?v
curl -s http://127.0.0.1:9200/<index>/_settings?pretty
curl -s http://127.0.0.1:9200/<index>/_mapping?pretty

analyzer通常不能对已有字段原地修改,需要新建索引、导入数据并原子切换alias。Magento全量reindex是否创建新索引取决于版本和搜索适配器,第三方模块可能复用了旧索引名。

用_analyze先验证预期

curl -s -H 'Content-Type: application/json' \
  -X POST http://127.0.0.1:9200/<index>/_analyze \
  -d '{"analyzer":"custom_analyzer","text":"测试词组"}'

分析结果不对就先修settings;结果对而Magento搜索不对,再查查询字段、boost和同义词。别反复清Magento cache,分词发生在索引与查询分析阶段。

上线前保留旧索引便于快速回切,但设置明确的保留数量,避免磁盘被历史索引占满。用一组固定关键词比较旧、新命中结果再切流量。