一、搜索引擎增强

有些浏览器插件可以在搜索引擎的侧栏做一些搜索增强的工作,比如 Monica 可以提供 GPT 的回答,diigo/Cubox 可以提供账号剪藏网页内容的检索结果。

图片
右侧侧栏展示了多种搜索增强

尤其是网页剪藏插件(diigo/Cubox)的搜索增强让我发觉,搜索引擎是在全人类的知识库中进行检索(Global),而剪藏搜索是对个人知识库的检索(Local)。一如强化学习的 explore 和 exploit,前者探索未知空间,后者机遇已知信息决策。有些重复率不高的信息,我曾经做过相关笔记、筛选过一些有用网页并剪藏,但又不知不觉遗忘在时间的长河中。基于个人知识库的搜索增强可以帮助我们快速“捡起”这些遗忘的信息,也算是一种“重复训练”,增加了一次对该信息的接触;另一方面也是节省了 explore 的时间——既然曾经已检索过信息并做笔记、剪藏,那就没必要把老路再走一趟了(但也要警惕可能会有信息的更新)。

于是有天我突然想到,能否对 Obsidian 的知识库进行搜索增强呢?
一搜,果真有的,感谢互联网🫰

  1. 安装 Ominisearch 插件,为了优化对中文的支持还需要安装另一个插件
  2. 安装成功后在 Ominisearch 的设置区开启 HTTP 服务;
  3. 参考文档,浏览器安装油猴脚本插件,并安装相应搜索引擎的支持(我安装的是谷歌的脚本)。
图片
Obsidian 搜索增强

二、侧栏排序

联动成功挺高兴的,但我又发现侧栏搜索增强的显示顺序是随机的。而且往往是 GPT 的搜索增强排在第一,一旦 GPT 巴拉巴拉一顿输出后就把后面其他搜索增强的卡片顶到没影了。

网上粗糙地搜索了下,没有找到解决方案,那就自己也写个强制侧栏排序的油猴脚本吧,感觉也没有很复杂。F12 观察发现每个搜索增强的卡片 div 都有 id,那么直接根据 id 进行排序就好了。

油猴脚本安装地址https://greasyfork.org/zh-CN/scripts/484378-google-rhs-order

脚本支持自定义排序,在设置中按序写好每个卡片 id 含有的关键字(子字符串)即可。

图片

我个人的偏好是先显示 Obsidian、cubox、diigo 这些个人知识库的内容,再拓展 GPT 的答案。

鱼与渔

脚本的代码没花多少时间写的,基本都是“指挥” GPT 生成代码。虽然还是有些小 bug,但瑕不掩瑜,手动改改就好了。

图片
Kimi Chat

后记

举个小例子吧,关于个人知识库的重温。

前阵子在少数派发表了个人Obsidian的使用案例,其中有一个评论在讨论文献管理工具的时候提到 citavi。好奇去搜了下,结果惊奇地发现在 Obsidian 知识库中竟然检索到有相关词条,原来是做《卡片笔记阅读法》读书笔记的时候有提到。也算是时间上的一场奇妙“偶遇”了。