#1 开始处理「search」请求
∴ request → organic ∥ ads → mixer → feed
#2 【自然搜索】SPU 召回
∴ query 倒排(SPU) → 相关门控精排 → 为每个 SPU 选可售 SKU
#3 【自然精排】SPU 6 → Top-1,并选定 SKU
∴ 按 spu_id 排序;sku = pick(有货 ∩ query规格 ∩ 销量)
#4 【广告】进入广告引擎
∴ 召回 → 精排(pCTR/pCVR) → oCPX调价 → pacing → 多样性 → GSP
#5 【广告召回】多路召回得到 0 条候选
∴ BM25倒排 ∪ query扩展 ∪ 兴趣类目 ∪ 向量相似 ∪ 热度兜底 − 频控
#6 【精排+调价+pacing】打分 0 条(预算过滤掉 0)
∴ rank_eCPM = pCTR × pCVR × bid × Q × 1000;paced = rank_eCPM × pacing
#7 【多样性】0 → 0(限同品牌/类目扎堆)
∴ max_per_brand=2, max_per_cate=3
#8 【GSP 竞价】胜出 0 条广告位
∴ 排序看 paced_eCPM;扣费≈ next_eCPM / (pCTR×pCVR×Q) (二价,≠出价)
#9 【混排】合并自然/广告(SPU 去重,SKU 落地)
∴ 广告占位 → 同 spu_id 去重 → 填自然;卡片 = SPU + pick(SKU)
#10 【混排完成】1 张卡片(广告 0)
∴ 去重键 = spu_id;展示价/库存 = sku