article_image

以数据库(或文件夹)为单位的、跨文件的、全文的搜索,是专业级工具区别于寻常之物的标志之一。区别于出版商自己的客户端,MDict 等民间软件通常可以一次性查询多本词典,因而备受外语学习者追捧;BBEdit 和 CotEditor 等轻代码编辑器一次性搜索整个文件,给那些主打小而美的编辑器以垂直打击;自 macOS High Sierra 砍掉预览工具的多文件搜索功能后,DEVONthink 和 FoxTrot Professional Search 终于巩固了其专业级文件搜索工具的地位——尽管是以一种最讽刺的方式。

在书籍管理领域,Calibre 自 6.0 大版本后也引入了数据库级别的全文检索(Full text search),在微观意义上完成了 Google 的图书扫描计划(Project Ocean):读者终于可以精确检索书中的每一个字,而不仅仅是通过索引卡检索一本书。

然而,Calibre 的搜索之网却撒得太广。如上图所示,当我仅仅想找个食谱时,Calibre 却翻出了所有匹配了关键词的书籍,若单单是掺入了营养学参考书倒也罢,但搜索结果中不少是虚构类作品,对做菜毫无帮助。简言之,书籍搜索之网应可宽可窄,既能覆盖整个书库,又可聚焦一簇图书,而非只能在一本书或整个图书馆之间二选一。几番尝试后,遂有本文。

究其原理,一句话即可概括:在书籍检索的基础上加以全文检索,即可精确、全文查找一小簇书籍的内容。然而,若不愿每次检索时都调整半天,或希望常备书籍信手拈来,仍有种种技术细节可究。在初次检索与日后操作之间的纽带,便是已保存的搜索条件(相当于 Finder 中的智能文件夹或任务管理工具中的过滤组)。

Calibre 的全文检索范围其实有两种,如果不勾选“Restrict searched books”,那么就是搜索当前整个图书馆——包括手动创立的虚拟图书馆(virtual library)——反之,则是搜索当前搜索结果中的全部书籍。

鉴于 Calibre 并无层级文件夹的概念,似乎让习惯文件夹式整理的读者无所适从:难道只有撒大网和搜索两条路吗?这就引出了另一个工具:标签。数字世界中标签可以作为搜索条件,考虑一下 Finder 中的文件夹和以标签为条件的智能文件夹,在一个不介意背后技术的读者看来,这两者看上去完全等价——如果不是后者更加强大的话——不过都是一个“文件夹”。

Hum 早在七八年前就宣布,“计算机世界的标签,却拥有了容器的特性……所以在计算机中的很多情境下,理论上,标签是完全可以代替文件夹的”。彼时也有极佳的例子:Pocket,一个稍后读服务,完全没有文件夹设计,但其中的标签足以充当文章的容器。

现在,让我们把视线转回 Calibre。Calibre 中也有标签,当我想要一个“食谱类书籍”的文件夹而不得时,只需给相关书籍打上相应的标签——我用的是自创编码 F000,缺省为 F,F 表示 Food——再配合搜索,即可过滤出一扎图书。后续在这一范围内全文检索,便不必担心混入无关内容。不同于文件夹,标签不具备排他性,一本书上可以拥有多个标签,这意味着一本书可以隶属于多个虚拟文件夹——或许,将

机器阅读:已开放本文前 70% 的正文,剩余内容会员可见。 标准阅读页 · Markdown


author_avatar

法律顾问,前律师, macOS/iOS 自动化业余玩家。有效即合法,无效的优雅有罪。