You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助SAP Commerce Cloud多站点SOLR产品过滤配置

SAP Commerce Cloud:用Solr配置实现仅返回当前Base Site的产品搜索

实现思路

完全基于OOB配置,无需修改代码重写搜索逻辑,核心是把产品关联的站点编码同步到Solr索引,再给每个站点的搜索添加强制过滤条件,从索引层面直接筛选出当前站点的产品,避免搜索后过滤带来的性能损耗。

具体操作步骤

1. 将产品的站点关联字段同步到Solr索引

首先要让Solr识别每个产品对应的站点:

  • 在Backoffice中找到对应的Solr索引类型(比如默认的Product),新增一个多值字符串字段,字段名可设为baseSiteCodes_sm(_sm是Solr多值字符串的标准后缀,也可自定义,但要匹配字段类型)。
  • 为这个字段配置Value Provider,确保同步产品关联的所有Base Site的uid(站点编码)到Solr中。如果产品的站点关联存在baseSites属性,直接映射该属性的uid集合即可;如果是自定义复杂类型,只需写一个简单的Value Provider提取站点编码(这属于OOB扩展范畴,无需改动搜索逻辑)。

2. 为每个Base Site的搜索添加全局过滤条件

让搜索请求自动带上站点过滤规则:

  • 进入Backoffice的Solr Search Configuration,找到对应Base Site的搜索配置(若用全局配置,记得按站点做覆盖设置)。
  • 在Query Settings的Additional Query Parameters中添加:fq=baseSiteCodes_sm:${baseSite.uid}
    • ${baseSite.uid}是Commerce Cloud的EL表达式,会自动替换为当前访问的站点编码,无需手动维护。
    • 若你之前设置的Solr字段名不是baseSiteCodes_sm,替换为实际字段名即可。

3. 验证配置效果

  • 触发一次全量Solr索引同步,确保所有产品的站点编码已正确写入索引。
  • 切换到目标Base Site搜索物料号,检查返回结果是否仅包含关联当前站点的产品。

额外注意事项

  • 若部分产品未关联任何站点,可根据业务需求调整过滤条件:需要排除这类产品,就添加+baseSiteCodes_sm:[* TO *];需要保留,就改成(baseSiteCodes_sm:${baseSite.uid} OR baseSiteCodes_sm:*)。
  • 即便站点关联逻辑是多层级自定义类型,只要能将最终的站点编码提取并同步到Solr多值字段中,这个方案依然适用。

内容的提问来源于stack exchange,提问作者Anton Hubarevich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:35:09