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

Azure Search/Solr多市场电商产品索引设计与评分优化咨询

多市场电商搜索索引设计方案

以下是两类经过业内验证的可行方案,可根据你的业务场景选择:

方案1:单产品对应1条索引文档

适合需要高频做跨市场产品聚合、市场数量后续不会大幅增加的场景。
你当前的平铺字段设计存在两个核心问题:一是新增市场需要修改索引结构、维护成本极高;二是打分时需要动态拼接字段名,无法通用配置权重规则。可以将市场属性改为嵌套对象数组结构解决:

{
  "id": "prod_123",
  "base_attrs": {
    "spu_id": "spu_456",
    "category": "3C数码",
    "locales": ["En", "Fr", "Zh"]
  },
  "market_attrs": [
    {
      "mkt_code": "USA",
      "rating": 4.8,
      "views": 12340,
      "price": 99.9,
      "wishlist_count": 230
    },
    {
      "mkt_code": "Canada",
      "rating": 4.6,
      "views": 3200,
      "price": 129.9,
      "wishlist_count": 56
    }
    // 其余107个市场数据
  ]
}

不同引擎的适配方式:

  • Elasticsearch:用嵌套查询过滤出对应用户所属市场的嵌套对象,直接取对应字段做权重计算,支持灵活配置动态打分规则
  • Azure Cognitive Search:开启复杂类型集合支持,打分时用权重提升函数配合集合过滤规则,仅对匹配当前市场代码的元素属性做加权
  • Solr:用嵌套文档或者动态字段前缀匹配规则,查询时动态指定对应市场的字段参与打分

该方案的性能边界:如果市场数量超过200、或者每个市场的专属字段差异极大,嵌套数组的查询性能会出现明显下降,不建议使用。


方案2:按「产品+市场」拆分索引文档

是90%以上跨境电商场景的首选方案,性能最优、维护成本最低。
每条文档对应一个产品在单个市场的所有数据,结构示例:

{
  "id": "prod_123_USA",
  "prod_id": "prod_123",
  "mkt_code": "USA",
  "rating": 4.8,
  "views": 12340,
  "price": 99.9,
  "wishlist_count": 230,
  "locales": ["En", "Fr", "Zh"]
  // 其他公共属性
}

核心优势:

  • 查询逻辑极简:用户请求过来直接按mkt_code过滤当前市场的所有文档,所有打分字段直接取当前文档属性即可,不需要做嵌套过滤,性能比方案1高30%以上
  • 字段扩展灵活:每个市场可以单独新增专属字段,不会互相影响
  • 分片优化方便:可以按mkt_code做路由分片,单个市场的查询只会落到对应分片,进一步提升查询效率

如果有跨市场产品聚合需求,只需要把公共属性冗余存储,或者单独维护产品基础索引,查询时按prod_id做聚合统计即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:15:00