onenote CAS总结⑦:异常“强大”的搜索机制

原创 小斯  2021-02-06 18:10 

onenote的中文搜索,相当尴尬,可以说是功能最强和最垃圾的混合体!至少在我用过的软件中,没有哪个的搜索功能比onenote强,同时,也没有哪个比它更垃圾。

1

强大又垃圾的onenote搜索

最强的搜索机制

onenote不只是能搜索纯文本,连手写、图片、录音、录像中的文本类信息都能给搜索出来。

而且,onenote中的搜索模式丰富:支持模糊搜索和精确搜索,支持AND、OR等逻辑运算符来优化搜索组合。

仅从onenote搜索支持的功能上来看,确实很强大。

最垃圾的搜索机制

这里说的垃圾,主要针对onenote桌面版的中文搜索,各种令人发指的Bug,简单概括就是:明明就在眼皮底下的内容,它就是搜索不到,或搜索不全。在这种可恶的Bug下,搜索功能几乎可以算形同虚设了,还有哪个软件比它更差吗?

具体Bug会在本文后面的小节中详谈。

但搜索还得用,面对这个强大又垃圾的搜索机制,该怎么办?微软不会解决Bug,所以想从根上解决问题几无可能,只能在弄透当前搜索机制的基础上,寻找对应的应对方法。

2

两种搜索模式,模糊与精确匹配

在很多软件(例如word)中,搜索的关键词是什么,就原样匹配什么结果。但在onenote中,情况却不一样。onenote搜索的匹配模式可以分成两类:模糊匹配、精确匹配。

模糊匹配

onenote默认的匹配方式是模糊匹配。例如,搜索“反思之镜”这个词,以下结果全部会被匹配:反思、之、镜、只、脂、竟……更绝的是,本尊“反思之镜”这个词,反而不会被匹配。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第1张

模糊匹配的思路大概是:根据软件内部的标准词库,先对搜索词进行分词处理,然后对分词结果进行逻辑“或”匹配。

onenote用了这么多年,个人对这种匹配思路从未有过一丝好感。至于项目组如此设计的初衷是什么,就不得而知了。

精确搜索

如果你需要完全匹配一串字符(例如“反思之镜”),为该串字符加上英文状态下的双引号后进行搜索即可,此时得到的就是完全精确的匹配结果。

注意,若使用的是中文输入法下的双引号,得到的结果仍然是模糊匹配。

3

图片、手写、录音、录像搜索

前面介绍的其实就是纯文本搜索。onenote还可以搜索图片、手写、录音、录像等笔记元素中的文本信息,这些搜索能得以实现,依赖的是onenote极具特色的底层机制。

图片搜索

onenote具备OCR (Optical Character Recognition,光学字符识别,即将图片中的文字转换为文本格式)功能,能识别图片中的文字,而且效果不错。

onenote的搜索机制也继承了这个OCR功能,进行搜索时,能自动匹配图片中的文字。

图片中的文字需要有一定的清晰度。

手写(绘图笔记)搜索

onenote可以将手写文字转换为文本文字,这也是onenote的强大功能之一。这个功能也被继承到搜索机制中,onenote可以搜索到手写的中文词组。

录音、录像搜索

要进行录音、录像搜索,必须先去onenote选项"录音和录像"中勾选启动录音搜索。

新建一个录音后,马上搜索录音里面的文本信息,此时可能搜不到结果,因为在软件打开状态下,onenote需要花两到三倍录音时长的时间才能建立好录音索引。

4

搜索范围及结果展示

指定搜索范围

onenote中有五种搜索范围:此页、此分区、此分区组、此笔记本、所有笔记本,其实就是onenote的目录层级。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第2张

有两个常用的快捷键:Ctrl+F,在当前页面查找;Ctrl+E,搜索此分区。

可以将除“此页”之外的另外四个范围设置为默认搜索范围。

搜索顺序,隐藏的优先级

软件在搜索时,在层级上是有默认的优先级的。输入关键词后,搜索,弹出即时预览搜索结果窗口:最先显示的是“最近所选的分区”,最近搜索后选择过的分区会出现在这里;然后是“在标题中”,即页面标题中含有匹配结果;最后是在“正文”中或“页面”上。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第3张

这个优先级有启示意义,标题的优先级明显高于正文,所以,为页面设置一个信息全面的好标题是有助于提高搜索效率的。

展示搜索结果

注意两个搜索结果窗口的区别,开始搜索时,会出现一个悬浮窗口显示结果,点击左下角的“固定搜索结果”,就可以在右侧显示固定的搜索结果窗口,后者功能更全面。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第4张

5

搜索原理,重建索引

onenote桌面版的搜索原理

onenote中内容那么多,是如何做到瞬间就能搜出所有结果的?靠提前建立好的索引。

onenote桌面版的即时搜索功能,依赖于操作系统的Windows Search服务,onenote的内容索引就是通过该服务建立的。默认情况下,该服务自动开启,但如果发现即时搜索出现明显异常,可以先检查是否启动了Windows Search服务。

开启Windows Search服务

打开控制面板,搜索“服务”,查看本地服务。找到“Windows Search”,启动即可。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第5张

如果“Windows Search”处于开启状态,onenote中仍然无法进行即时搜索,此时,可以考虑手动重建索引。

重新建立索引

重建索引的完整步骤可以参考此文:onenote搜索机制详解⑥:搜索原理,重建索引

重建索引完成后,如果还是存在搜索问题,那就需要进一步检查,是否属于软件自身的Bug?

6

中文搜索Bug

以下示例中,搜索关键词“反思”,黄色代表已匹配,红色代表本来应该匹配,实际却无法匹配。

①. 段首以非中文开头,一般,搜不到后面的关键词

例如段首以数字、字母、符号、日文、韩文等字符开头时,搜索不到关键词。

注意,自动编号并不算作内容字符,例如下图中的自动编号“1”、“A”是内置格式,而非内容,真正的内容仍然是以“小斯想”开头,所以能被检索。

有一种例外情况,例如字母和数字开头时,关键词前若用符号隔开,就能匹配,但其他情况下仍然不能匹配。

②. 非手动输入内容,全部或部分搜索不到

只要不是手动输入的内容,都可以归到这类。例如从外面(例如网页)复制粘贴、三方插件发送进onenote,等等这样的内容。

全部搜索不到,无需举例了。部分搜索不到,例如下图,黄色代表已匹配的结果:要么在段首,要么字符串前面有符号分割,才能匹配。而其他情况下均无法匹配。

弄清楚这些可能存在的Bug,然后有针对性地建立起一套相对高效的搜索范式。

7

相对高效的搜索范式

根据前面的内容,针对性地总结了下面几条建议,供参考。

多用精确搜索

默认的模糊搜索,一般而言,其结果是相当令人抓狂的,多数情况下,我们需要的是精确匹配。

外部导入内容,在标题处添加标签

对于某些外部导入内容,搜索形同虚设。如果这类内容占比较大,可以手动添加一些主题标签。

例如可以在标题中的第二行手动添加标签,标签应尽量对当前页面的内容进行一个大致定位。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第6张

尽量用自动编号

段首以字母或数字开头时,可能导致后面的内容无法被检索。这类情形,较常见的就是编号了。

用onenote的自动编号,不会遇到搜索Bug。所以,建议用自动编号代替手动编号。

用宏进行精确的局部搜索

对于确认已经存在搜索Bug的对应内容,onenote检索不到的,也不可能逐字去查看。此时,可以让宏替你逐字检索。

Onetastic网站上有类似的查找宏,选择合适的即可,或者自己写。这类宏的检索方式并不依赖于索引服务,而是遍历字符进行匹配,查找起来较慢,但是绝对精确。建议局部搜索时使用,当然,如果打开的笔记本内容不多,也可以对全部笔记本进行搜索。

例如,我常用下面这个宏(Onetastic脚本分享15)进行当前页面搜索。

onenote CAS总结⑦:异常“强大”的搜索机制 onenote 第7张

面对这些不会被修复的Bug,只能在了解搜索机制和相关Bug的前提下,寻找应对方案。根据个人的使用习惯,建立搜索规范。

本文地址:https://cas01.com/7335.html
公 众 号 :注意两个号的区别,小斯想专注于OneNote和思维导图等具体的知识管理软件的经验分享。(OneNote为主);cas01专注于知识管理理论及实践成果的分享。(知识管理理论及实践)。
温馨提示:本站发布的压缩包如需密码解压,若无特别说明,密码统一为:cas01.com
版权声明:本文为原创文章,版权归 小斯 所有,转载请保留出处。

发表评论


表情

  1. Alien
    Alien 【LV1】 @回复

    请问如果想搜索“关键字 ”怎么可以让空格有效?(冒号内最后一个字符空格实测被忽略了)