生物医学 AI 文献检索:从关键词到混合检索(BM25 + 向量 + RRF)
关键词检索(如简单包含匹配)召回率高但精度差;纯向量检索语义好但容易漏掉精确术语。我们在 src/search.mjs 里实现了混合检索。
三路召回 + 融合
- BM25:经典词频逆文档频率,保证精确术语(如 "CRISPR-Cas9")高排。
- 字段加权:标题 6 分、标签 3 分、作者 2 分、摘要 1 分,让核心字段主导排序。
- RRF 融合:Reciprocal Rank Fusion 把多路排序归一后加权合并,兼顾召回与精度。
const fused = rrf([bm25Rank, fieldRank], { k: 60 });
为什么对科研重要
科研检索里,术语精确性("single-cell RNA-seq")和语义相关性("单细胞测序")同样关键。混合检索让两者兼得,且无需 embedding 服务即可运行(向量接口预留,可按需开启)。
这套检索已作为 MCP 的 semantic_search 工具对外开放,详见 MCP 接入页。