當前位置: 華文問答 > 數位

Everything等本地搜尋軟體為什麽比windows內建的搜尋工具快那麽多?

2020-03-10數位

一、Everything實作快速搜尋的原理:

Everything並不掃描整個磁盤,只是讀取磁盤上的USN日誌,並建立索引,提前儲存到資料庫,尋找時在資料庫進行搜尋,所以速度飛快。

Everything能快速獲取所有硬碟上的檔列表,主要得益於Windows對NTFS的支持。NTFS的檔案系統上存在一個數據表(Master File Table(MFT)),它記錄了磁盤上所有檔的檔資訊(USN Journal),當有檔進行增刪改查時都會同步去更新這個資訊。

Windows提供各種API給開發者去呼叫存取這些數據。Everything也是基於這些API來獲取所有檔列表,這比遍歷所有檔目錄要快很多。但Everything開發技術本身也挺厲害,它可以在毫秒的級別內透過它自己維護的索引,快速搜尋出上萬的匹配結果,並且還支持通配符、正規表式,而且可以瞬時顯示在表單上,讓你感覺幾乎是秒搜。所以比Windows內建的搜尋爽很多。

Everything在第一次開啟使用時會掃描整個硬碟,然後建立一個索引資料庫,體積並不大,和電腦檔的數量有一定關系,但相對於AnyText(搜尋檔內容的工具)已經小很多。如果你新增修改刪除檔,Everything會即時去自動更新這個索引資料庫,索引資料庫建立之後,以後每次搜尋檔,Everything就在它建立的這個Everything.db這個資料庫裏搜尋,而不需要掃描整個硬碟上的檔,所以速度會快到離譜,這是Everything和Windows系統內建搜尋的本質區別。

二、Everything主要優點:

  • 記憶體占用小。
  • 綠色軟體,無須安裝 免費無廣告
  • 快速獲取到NTFS磁盤上的所有檔列表,並能高效建立並維護一個索引
  • 即時監測檔的增、刪、改、查變化,並更新索引
  • 你按關鍵字搜尋時,能夠在資料庫中快速搜尋並給出匹配的搜尋結果且在列表控制項中呈現
  • 界面簡潔,操作流暢
  • 根據Everything的官網所說,它1分鐘可以索引100萬個檔。48萬多個檔,建立索引需要的時間也只有幾秒,索引無需逐一掃描硬碟檔,而是直接讀取NTFS檔案系統的USN日誌,Everything由於核心原理建立在NTFS的底層機制上,NTFS檔案系統中的 USN 日誌記錄了系統對NTFS分區中的檔所做的所有更改。對於每一卷,NTFS 都使用 USN 日誌來跟蹤有關添加、刪除和修改的檔的資訊。直接讀取NTFS檔案系統的USN日誌, 所以速度很快

    三、Everything的不足及缺點

    缺點也明顯:

    (1) 只支持NTFS格式的分區,因為USN日誌是NTFS專有的。在FAT、FAT32格式分區上無法使用 Everything。

    (2) 預設只索引檔名稱、日期和大小,不索引檔內容和附加內容 。
    (Everything可使用content來搜尋檔內容,但未索引內容時搜尋文本內容是比較慢的)

    Everything的數據是存放在Everything.db 資料庫中。隨著檔越多,索引越大,這個資料庫也就越大。也可刪除它重建索引。

    四、Everything的下載 、詳細介紹及最全的保姆級幫助教程

    可看這裏

    五、Everything SDK進行二次開發

    可看這裏

    六、其它相關高效工具

    AnyText: 搜尋文本內容

    listary : 後面找時間再介紹

    wox / Power Toys 等

    更多高效辦公工具集錦:

    七、為什麽使用Everything

    1、綠色軟體,無須安裝,下載即用

    2、老牌軟體,一直有更新。

    3、高效快捷,搜尋速度特別快

    4、免費,不收費,良心軟體

    5、 不光免費,還完全沒有廣告,而且堅持了這麽多年 ,一個軟體的開發需要付出巨大的努力還有時間和精力,能夠堅持這麽久,我自己也寫些小工具,但感覺也無法堅持這麽多年,所以的確是很值得推薦的!

    希望能幫到您。也可點個贊及關註我們 @小辣椒高效Office

    另丟擲一個問題:不知有否大神 知道EveryThing.db 這個資料庫 是什麽資料庫?試過sqlite打不開,是esdb? 還是什麽資料庫?有加密嗎?應該如何開啟?