背景: 由于相同商品不同颜色、尺码属于不同item号,导致其在列表中展出太多,用户实际在单位时间内可看到的商品类型减少。为了解决这个问题,将这类配置成系列品的商品提供“单个展示”的功能,使一类商品在分类只代表性展示出一个。
现状:
如下图所示: apple iphone 12 128G 统一规格的不用颜色均单品展示:
期望:
如下图所示:对于属于统一系列品的商品,按照一定规则只展示一个:
方案:
支持以下三种选择规则:
- 销量 ( 价格 ) 排序中,同一系列品选择销量 ( 价格 ) 最高/最低的单品作为改系列品代表;
- 综合 ( 默认 ) 排序中,同一系列品选择销量最高单品作为改系列品代表,同时保持楼层;
- 指定排序中,同一系列品顺位选择单品作为该系列品代表,但不同时支持销量价格排序 ( 即系列品内按 B 端指定顺序排序,但系列品间无序,若期望有序,则需要指定系列品之间的顺序,类似于首页组件 ); 同时依旧保持原有的规则 ( 极速达置顶、售罄置底、门店分层、排序分页 ) 不变!
实现: ( 在原有的 es dsl 上增加如下对应的 builder 代码即可 )
"collapse": {
"field": "series_id"
}
// 复杂一些的可以用 terms aggregation + top_hits/top_metrics aggregation 配合使用