两秒找到资源 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搜索中第一次引入 , 它帮助我们可以将不同目录中具有相同特征的文件提取出来建立一个虚拟的并不真实存在的文件夹 , 方便我们查找和浏览 。

推荐阅读