产品检索的第一项任务不是找到“最像的一段话”,而是保留不能改动的型号和条件。本文的AX系列均为合成教学产品,不对应智核增长客户。实验用于解释工程选择,不还原任何商业AI平台的排序系统。

从倒排索引到BM25

倒排索引记录一个词出现在哪些文档中。查询中的词成为候选入口,BM25再综合词在文档中的频率、在语料中的稀有程度和文档长度。高频词重复很多次不会一直线性加分;长文也不应仅凭字多占优。相关数学背景可查Stanford信息检索教材。

理解参数之前,应先检查索引看到的是什么。页面写着完整型号,不代表分词器将其当作完整标识符;默认分词可能把连字符拆开。将AX-220写进标题可以改善可辨识性,但不是强制结果只返回这个型号。产品库还需要一个保存原始字符串的型号字段。

一组容易误判的产品记录

文档 型号 关键事实 不能推出的结论
D1 AX-220 220 V电源、20 L水箱、室内密封硬地面 不能推出兼容110 V
D2 AX-110 110 V电源、20 L水箱 不能因系列相同替代D1
D3 AX-220B 24 V电池、充电器输入220 V 充电器电压不是电机电压
D9 AX-220-manual AX-220说明书附录,换插头不改变电压 不等于另一个产品型号

D9说明了一个细节:严格按产品主表筛选可以保留身份,但如果把说明书当作独立型号,反而会排除有用证据。生产系统应建立“说明书属于哪个产品”的关系,而不是让文件名充当产品ID。示例程序没有自动推断这种关系,读者应把它当作扩展练习。

用SQLite建立可检查的词法基线

下载实验包)、合成语料与答案键和完整程序。程序调用SQLite FTS5,查询词采用OR组合,型号字段权重为4,正文权重为1。这些是教学配置,不是最优参数,也不是官网关键词密度要求。

CREATE VIRTUAL TABLE products USING fts5(id UNINDEXED, model, body);
SELECT id FROM products
WHERE products MATCH '"AX" OR "220"'
ORDER BY bm25(products, 0, 4, 1), id;

SQLite的BM25函数采用越小越好的排序约定,不能将其值直接解释为概率。FTS5官方文档给出了具体实现。本文程序对数据库使用参数绑定;不要把任意客户输入直接拼成SQL或FTS查询表达式。

手算词频饱和,而不是把重复型号当作诀窍

BM25中的一个词频因子可写成下面的形式,完整得分还包含逆文档频率等项。SQLite对返回分数采用越小越靠前的符号约定,因此不能直接把其他系统的正分值与它相加。

tf_factor = f * (k1 + 1) / (f + k1 * (1 - b + b * dl / avgdl))
f = 2, k1 = 1.2, dl = avgdl  ->  4.4 / 3.2 = 1.375
f = 4, same lengths         ->  8.8 / 5.2 = 1.6923

词频从2变成4,因子并没有翻倍;这说明饱和机制,而不是建议在网页里重复型号。上面只是忽略IDF的单项教学演算,不是本包某道查询的最终分数。正式分数还依赖整份语料的统计、分词和字段权重。改变文档集合后,分数发生变化并不必然说明页面质量变了,应先核对索引版本。

先用完整问题保存一个结果列表,再只输入型号作对照。若型号检索都失败,应查看分词、大小写、别名和索引字段;若型号正确、适配结论错误,应检查证据和约束,不能继续靠加关键词解决。

lexical_rank(documents, 'AX-220', exact_model=True)会把型号完全相等的记录放在前面。这是程序中显式加入的业务规则,不是BM25自己“理解”了产品。它也不保证该记录回答了保修、价格或认证问题。Q10询问保修和价格,而语料没有这些事实,即使D1排第一也应回答证据不足。

结果怎样复核而不是只挑成功案例

实际运行记录保存每个问题的完整排名、分组、前3位指标和耗时。答案键中D1与D9都能支持Q2的电压限制;只看到D1不等于证据检索已经完整。Q10没有相关答案,指标记为空值,不把它算成满分,也不从问题清单中消失。

本例只有9条英文记录和10个查询,包含一个中文压力测试。词法耗时包含临时建索引,不能与只计查询编码的向量耗时直接比较速度。要评估真实产品库,应固定训练与评测分组、补充多种型号格式,并单独核查未知问题的拒答行为。

实测反例:字段里有型号,为什么仍排错

本次Q1问“AX-220 supply voltage”,词法前3项是D9、D3、D2,D1没有进入前3。这里采用了OR连接的宽召回:出现AX、220、supply或voltage都可能进入候选。D3与D2有重叠词,型号字段加权也没有等价于产品身份约束。这个结果不是SQLite坏了,而是实验配置回答了“哪些文档含查询词”,尚未回答“哪些资料确实属于这个产品”。

对照Q5“BR-6204 bore diameter”,词法先返回D7,向量先返回D8。两个问题共同说明不能只选择一个成功例子宣布某种检索永远更好。改进时可依次比较:原始OR检索、型号精确过滤、说明书归属扩展、型号不确定时的澄清;一次只改一项,保存被过滤掉的证据。

如果读者将本例扩成真实目录,首先应增加一组未参与参数选择的型号难例,再确定字段权重。不要看到Q1失败后专门给AX-220硬编码加分,再拿同一道题证明系统提升。对于包含汉字的Q9,本程序的词法查询只提取ASCII字母和数字,属于明确的简化;它不能代表具备中文分词的生产检索系统。

官网编辑的对应动作是补齐型号归属、参数对象和说明书入口,而非把AX-220重复十遍。页面质量与内部索引配置应在报告中分开,防止把一次工程调参解释为外部搜索平台排名变化。

智核增长如何把检索问题落实到官网

对中国B2B出海企业,智核增长的工作落点是让型号、版本、单位、适用条件与说明书入口在公开网页上对应一致。检索实验帮助定位“缺信息”还是“信息不易区分”,不表示智核能调整Google、ChatGPT或Bing的内部权重。

继续阅读向量检索的型号混淆、混合检索与检索指标词典。需要短答案时,可进入技术FAQ;不要把本文实验得分当作官网引用率。

知识中心 · GEO服务 · 研究与证据