Notarium文档
文档版本: latest

混合搜索

Notarium 的搜索由相互补充的独立通道构成。全文(词法)搜索始终可用,无需任何配置。基于含义的语义搜索和对图谱链接的感知,则是叠加在其之上的可选层。各通道的结果会融合成统一排名;即便可选层不可用,搜索仍会基于全文继续工作——而不会报错。

三条通道

通道作用何时生效
词法(FTS/BM25)查找词语和短语的精确匹配,按 BM25 排序始终可用,无需配置
语义(向量)查找含义相近的内容,即便没有共同词语可选(VECTOR_SEARCH
图谱加权通过 [[维基链接]] 拉入命中项的邻居可选(GRAPH_BOOST),默认关闭

词法通道是根基:启动后即可工作,无需安装任何东西。语义通道增添了对含义的理解(同义词、改述),图谱加权则增添了对笔记之间链接的认知。

结果如何融合

各通道由 RRF 算法(Reciprocal Rank Fusion,k=60)合并:每条通道产出各自的排序列表,RRF 按位次而非无法相互比较的「原始」分数,将它们叠合成统一排名。这样,词法匹配与语义相近就能一并权衡。融合发生在笔记层级——依据其稳定标识符进行。

flowchart LR
  q([查询]) --> fts[词法 · FTS/BM25]
  q --> vec[语义 · 向量]
  q --> gr[图谱 · 1-hop]
  fts --> rrf{RRF 融合}
  vec --> rrf
  gr --> rrf
  rrf --> res([结果])

若语义不可用

语义层可能被关闭或不可用:未启用 VECTOR_SEARCH、未安装向量栈、模型未加载,或查询向量的计算超时。无论哪种情况,查询都会由词法通道处理——搜索始终会响应,不会仅因缺少语义就报错。

语义按需启用

向量搜索会引入沉重的原生栈(磁盘占用约 660 MB),并将嵌入模型加载进内存(数百 MB 的 RAM),因此在公共镜像中默认关闭。如何开启它、如何选择模型,参见 搜索配置

你在哪里搜索

  • Spotlight / OmniSearch——快速、带排名地跳转到某条笔记。完整的混合搜索在此生效:重要的是相关性,而不只是词语的精确命中。参见 搜索与 Spotlight
  • 文档流过滤文档流 中的 ?q=)——对语料库的词法过滤:它保留确实出现了查询词的笔记,并与文件夹、标签和日期过滤叠加。

索引及其重建

搜索索引是派生知识:它由文件构建,并可通过重新扫描完全恢复。每个空间一个索引。更换嵌入模型不是迁移,而是从零重建向量部分。在大型语料库上首次构建向量索引需要数分钟乃至数小时;这段时间内界面会显示「Building search index…」指示,而搜索本身仍以词法模式保持可用。

相关主题:知识图谱——第三条通道的来源,搜索配置——启用语义并选择档位,File-first——索引为何可恢复。