使用過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搜索的未來,編者認為速度方面的提升意義不大,不會有革命性的改變。因此我們可以大膽預測它的未來:由于微軟收購的知名軟件廠商越來越多,因此搜索所支持的文件格式將會越來越多;而且在搜索內容上也將不僅僅局限于當前文件的內容和相關信息,以前修改過的內容和信息也將可以通過搜索功能查找到,這樣就可以在不小心刪除文件內容后通過搜索功能將它們“找回來”。