两秒找到资源Windows Vista搜索加速原理探究
如何在两秒内找到你电脑中存放的任何资源呢?——通过Vista本地搜索!
使用过Vista系统的读者都会知道它的搜索功能是非常强大的,和以往Windows下的搜索功能相比,在速度上有质的飞跃。那么微软是如何实现这种搜索加速的目的呢?今天我们将从搜索加速原理入手为大家全方位介绍Vista系统中的“闪电搜索”功能。
Vista搜索的前世今生
在Vista系统发布之前Windows自身的搜索功能非常差劲,不仅操作起来不方便,而且搜索速度和搜索的信息种类都远远不能满足用户需求,因此很多Windows用户都纷纷抛弃系统自带搜索功能,转而使用其他厂商发布的本地搜索工具。
为了弥补这个缺陷,微软公司也一直在努力,并于2003年推出了基于WinFS(Windows File Search)的Windows Desktop Search工具。Windows Desktop Search是取代了WindowsXP基于开始菜单的搜索工具,提供了更多的功能和方便的基于任务栏的搜索。这个WDS也被称为Vista搜索的雏形,它没有内置于Windows 2003和WindowsXP中,只是以一种工具的形式发布。
随着Vista的发布,微软将改进型Windows Desktop Search内置到了Vista系统中,从而彻底替代了传统的搜索功能。至此Vista系统搜索正式改头换面,从幕后走向台前的Vista搜索在速度、功能和易用性上均有大幅提升。
闪电般的搜索速度
使用过WindowsXP的用户都会知道要在一个80GB的硬盘上搜索文件,恐怕需要几分钟甚至更长时间才能找到结果。不过Vista搜索巧妙地解决了此类搜索缓慢的问题,输入搜索关键字,点击“搜索”按钮,立即可以显示出搜索结果,真正实现了“所搜即所得”的快速搜索目的。
另外在Vista系统中使用搜索功能是非常简单的,不用在“开始”菜单中寻找专门的搜索项,打开“开始”菜单后就能够直接看到搜索关键字输入栏的存在。
索引的威力
那么为什么Vista系统中的搜索速度如此迅捷呢?最主要的原因就是它使用了和google desktop search提高搜索速度一样原理的技术,被称为Indexing Service的索引服务,不过Vista搜索可以由用户自定义要建立索引的内容,包括基于哪个文件、哪个目录、哪个磁盘乃至哪种格式的文件。Vista搜索是动态实时更新的,所以我们不用担心文件变动会造成搜索出错问题的发生。比如:用户把一个文件从C盘剪贴到D盘,索引就自动修改为指向D盘了,这一个过程并不需要用户知道。
使用过其他本地搜索工具的用户都会知道,在搜索之前都需要花费几个小时的时间来建立索引关系。Vista系统也是基于此原理的,不过由于索引与系统兼容性和整合性非常好,所以索引建立过程并不会给人一种严重拖慢系统运行速度的感觉。
技术点评:说白了,闪电搜索是在索引目录的基础上实现的,Vista系统会在平时建立磁盘上所有文件和目录的索引关系,维护出一个索引表,当要查找信息时直接从索引中查询即可。这个索引就好比我们书本中的目录一样,可以直接根据自己要找的内容翻到对应的页面(原理如图1所示)。
多方位打造的高速搜索引擎
当然除了采用索引服务这个主要因素来提高搜索速度外,微软在Vista中引入了诸如虚拟文件夹、组合查询、保存搜索结果、分类搜索、可操性搜索等多个概念,通过这些途径也可以提高搜索速度。
1.虚拟文件夹
虚拟文件夹(原理如图2所示) 的概念也在Vista搜索中第一次引入,它帮助我们可以将不同目录中具有相同特征的文件提取出来建立一个虚拟的并不真实存在的文件夹,方便我们查找和浏览。
虚拟文件夹一经建立则会出现在Windows资源管理器以及Windows Media Player等多个可以查看硬盘上文件的程序中。从技术角度看虚拟文件夹实际上是搜索索引的一种变化和延伸,它将索引目录虚拟化,让用户可以以虚拟文件夹的形式看到这些索引目录的存在。在实际使用中它可以帮助用户有规律地快速浏览自己需要的信息。
2.组合查询
组合查询(Query Composition)技术也头一次在Vista中明朗化。所谓组合查询就是在针对某个搜索条件的搜索结果的基础上,通过对搜索条件作进一步的限定来实现。这样,搜索的范围大大缩小,效率与速度在很大程度上得到了保证。直白地说,这种方式就类似于常见的“在结果中查找”,它帮助用户步步为营逐步找到自己所需要的信息。最终组合查询帮助我们实现了由粗到细、由模糊到精确的查询过程。
3.保存搜索结果
很多用户都会经常在系统中查找同一类内容,因此在Vista搜索中还引入了保存结果的功能,我们可以把搜索结果保存为一个特殊的搜索文件夹,与普通的文件夹相比,搜索结果文件夹默认设置为隐藏格式,但其内容是动态的,即其中所含的文件和文件夹将会随着文件系统的变化而自动添加或删除,以实时匹配搜索项。保存搜索结果技术的精华就在于所保存的结果不是不变的,而是随着系统的运行文件路径的变更而实时变化的,这样可以更加准确快速地呈现搜索结果。
4.分类搜索
为了加快搜索的速度,微软对搜索采用了一种名为分类搜索的概念。所谓分类搜索就是指根据用户当前的操作进行搜索,例如当用户打开控制面板后通过搜索功能搜索时,它将只针对控制面板中的相关选项图标和内容进行查找;另外当用户打开Windows Media Player播放器来收听歌曲时使用搜索的话,系统将只针对.mp3、.wav等音频格式的文件进行查找。说白了,你使用哪个程序中的搜索功能,就将针对哪个程序能够打开的文件或者哪个程序中的选项进行查找。另外这种分类搜索还有一个好处,就是可以让软件制造商轻松利用搜索功能,将搜索模块添加到第三方软件中。
技术点评:通过这种分类搜索,实际上是把搜索功能划分成多个小搜索功能,在不同工具中对不同内
容进行搜索,一方面可以针对用户的操作喜好进行遍历和查找;另一方面由于减少了搜索内容的数量,从而大大提高了搜索速度。
5.可操性搜索
在Vista系统中搜索的可操作性是令人倍感亲切的,我们几乎可以在系统的任何一个角落发现搜索的身影。不管是开始菜单还是控制面板,不论从资源管理器还是从IE 7浏览器,甚至从Windows照片库以及Windows Media Player中,都可以直接调用搜索功能。这种搜索遍布系统的布局,让用户可以在想查找信息时马上搜索,变相提高了搜索速度,也让用户更加容易上手,不用频繁返回桌面调用搜索菜单了。
充分学习了网络搜索技术
实际上本地搜索和网络搜索在查询信息原理上是类似的,搜索引擎在工作原理上主要分为纯技术型的全文检索搜索和分类目录搜索,前者是通过程序到各个地方收集信息,建立索引数据库,在搜索结果上它是以速度取胜的,但结果信息并不是实时内容,都是在此前一段时间内收集来的。而后者分类目录搜索则是通过人工提交的关键词和人工审核相应信息建立起来的,这种搜索是以真实取胜的,它的结果都非常准确。
从构成原理上看,Vista本地搜索更像是两者的结合,一方面通过搜索程序到硬盘各个扇区和磁盘各个目录去搜索内容,建立索引数据库;另一方面通过文件内容中的关键词建立一种遍历数据库。两种数据库一起工作才使得我们可以既快速又准确地找到所需内容。
预测:Vista搜索的未来
作为Vista对应的服务器版本,Windows longhorn中将延续Vista搜索功能是不争的事实。另外对于Vista搜索的未来,编者认为速度方面的提升意义不大,不会有革命性的改变。因此我们可以大胆预测它的未来:由于微软收购的知名软件厂商越来越多,因此搜索所支持的文件格式将会越来越多;而且在搜索内容上也将不仅仅局限于当前文件的内容和相关信息,以前修改过的内容和信息也将可以通过搜索功能查找到,这样就可以在不小心删除文件内容后通过搜索功能将它们“找回来”。