第 3 节 · 本站原创中文课程 · 建议 25 分钟
关键词、向量与时间过滤
学完能做:处理精确标识与自然语言查询。
精确字段需要精确查询
型号、订单号和日期适合字段或关键词;自然描述适合语义。用户、状态和时间过滤必须覆盖每条检索分支,不能只过滤向量分支。
融合名次而非混合尺度
关键词与余弦分数尺度不同,直接相加不稳定。倒数排名融合作基线,先分支去重,再控制结果量。
def fuse(rankings, k=60):
scores = {}
for ranking in rankings:
for rank, mid in enumerate(dict.fromkeys(ranking), 1):
scores[mid] = scores.get(mid, 0) + 1/(k+rank)
return sorted(scores, key=scores.get, reverse=True)
# 各分支先应用相同owner/time/status过滤 top-k不保证有答案
测试空库、过期与错误用户。无有效来源返回未找到,不根据其他人的记录补答。检索命中与答案质量分开观察。
这是本站独立编写的讲解与示例,并非官方课程逐字翻译。理解之后,请完成下面的练习、自测和笔记。