先从纯文本搜索讲起,这是最基本也是最重要的。
从这篇开始,以及接下来连续几篇文章,都会介绍搜索的基础功能。注意,这几篇文章中谈论的都是基本的、正常的搜索功能,暂时不考虑Bug等因素。
在很多软件(例如word)中,搜索关键词是什么,就原样匹配什么结果。但在onenote中,情况却不一样。总的来说,onenote搜索方式可以分成两类:模糊搜索、精确搜索。
1
模糊搜索
onenote默认的匹配方式是模糊匹配。若不清楚onenote的匹配机制,肯定会被搜索出来的结果搞得莫名其妙。
例如,搜索“反思之镜”这个词,以下结果全部会被匹配:反思、之、镜、只、脂、竟……更绝的是,本尊“反思之镜”这个词,反而不会被匹配。看到这种结果,你若没开口骂,那证明你涵养真的好。
从这个结果也可看出模糊匹配的思路:如果搜索框输入的内容,并不是软件所认为的规范词(例如“反思之镜”),那这个词不会被匹配。接下来,软件会对输入内容进行分词,对于能识别的规范子词(例如“反思”)会进行精确匹配,对于切分出的单字(例如“之”、“镜”),不仅会匹配单字本身,连与该字读音相同的文字(例如“只”、“脂”、“竟”)也会被匹配。
据说,默认的模糊匹配是onenote刻意这样设计的,这就有点“此之蜜糖,彼之砒霜”了,而且我觉得对大部分人来说应该都是后者,至少我到目前为止还从未从这个设计中找出一点儿蜜糖。
2
精确搜索
如果你需要完全匹配一串字符(例如“反思之镜”),对该串字符加上双引号后进行搜索即可,此时得到的就是完全精确的匹配结果。
这里需要特别注意的是,精确匹配的双引号必须是英文状态下的双引号。中文输入法下的双引号没用,得到的结果仍然是模糊匹配。
onenote搜索机制详解②:两种搜索模式,模糊与精确匹配 | 小斯想