← 文档

混合检索(BM25 + 向量)

知识库内的搜索同时跑两套索引——词法(Tantivy/BM25)和语义(向量嵌入)——再用 Reciprocal Rank Fusion 融合。单独用任何一套都会漏;合在一起能覆盖大多数查询。

用法

返回的是按融合分数排序的片段(一般以 H2 为界),含摘要和源文件路径。

两套索引

词法索引

—— Tantivy BM25 分词器,擅长精确匹配、人名、代码

向量索引

—— fastembed(在 embed feature 后面)。存在普通 SQLite 的 cosine 表里,无需原生向量扩展。

RRF 融合

Reciprocal Rank Fusion 不需要校准两套分数——只信任名次。这让它在切换向量模型(分布完全不同)时依然稳定。

索引

watcher 在每次保存时增量重建索引。要强制全量重建:mddock reindex。