采购商和维修师傅输入 OE 号时,很少有人规规矩矩打空格或连字符:同一只零件可能被写成 AB12345、AB 12 345、AB-12-345,大小写也不固定。如果你的站内搜索只做字面匹配,用户明明输入了正确的号,却提示“无结果”。所以问题不是“要不要忽略”,而是在哪一层忽略:用一个归一化后的键去命中,同时保留零件原本的规范写法用于显示;并且绝不能因为归一化把两个不同的零件并成一个。
这和按采购者输入方式给 OE 号关键词分组不同:那篇讲 SEO 关键词怎么分组;本文讲站内搜索在匹配行为上该怎么处理分隔符。适配依据与产品页的结构,见汽配适配数据与产品页。


oe_norm.py(2026-10-02)。号段为教学用的占位示例(AB12345 / AB12345A),不代表任何真实零件或适配关系。先说结论
- 空格、连字符、大小写:可以在匹配层忽略。把非字母数字去掉、统一大写,作为查询键。这是“同号可被找到”的关键。
- 后缀(A/B/REV 等):不要忽略。
AB12345与AB12345A可能是不同零件或不同版本,归一化时必须保留后缀。 - 显示层保留原样。命中后展示该零件数据库里的规范写法,不要把用户输入回写进订单。
- OE 号匹配成功 ≠ 可以装。适配还要看车型、年款、发动机/配置,必须清楚提示下一步核对。

为什么不能“全都模糊匹配”
有些团队图省事,直接上模糊搜索(编辑距离)。问题是汽配号段很短,差一个字符常代表完全不同的零件;编辑距离把 AB12345 与 AB12435 判为“相似”,会让用户买到装不上的件,代价远大于一次“无结果”。更稳的做法是:
- 先做精确的归一化匹配(去掉分隔符、大写)。
- 匹配不到时,再给出“是否输入了相近号段”的候选列表,并明确标注“需人工确认”。
- 永不把相似结果直接当成命中替换给用户。
落地到站内搜索的几层
| 层 | 做什么 | 注意 |
|---|---|---|
| 输入层 | 实时去掉空格/连字符、转大写,用于查询 | 同时保留原始输入串,便于日志与人工复核 |
| 索引层 | 为每个零件存一个 norm_key(含后缀) | 索引键不等同于展示号 |
| 展示层 | 显示数据库里的规范号段与适配信息 | 不把多个零件共用一个展示号 |
| 引导层 | “请按车型/年款进一步确认适配” | 无把握时不显示“精确匹配” |
边界与例外
- 不同厂家的号段可能碰撞。同一串字符在不同品牌体系里未必指同一件,展示时要带品牌/分类上下文。
- OEM 号与售后号不同。用户可能拿的是原厂号,你的目录若用售后号,需要映射表,且映射要有来源。
- 不要把归一化当成“适配确认”。找不到就如实说找不到,比强行给一个近似件安全得多。B2B 汽配目录的数据组织方式,可对照公开汽配目录 partsfinder 的拆解。
站内搜索只是入口,真正决定成单的是“能否快速确认适配”。批发与车主问的不是同一件事,分流方式见批发商与车主询盘怎么分流;把搜索、产品页与询盘一起搭建,可参考外贸 B2B 网站建设服务。
说明
- 文中号段为教学占位示例,不映射任何真实零件或车型。
- 归一化行为由本机
oe_norm.py实测输出(2026-10-02),仅演示匹配逻辑。