
我必須使用 Windows Search 對相當大量的資料建立索引,因此我想估計索引大小。我已經對數據子集(大約 60GB;13e6 頁文字數據,每頁大約 4-5KB)建立了索引。
該索引已成長到約 78GB,因此它現在佔用的空間比資料本身還要多。這些結果與我所讀到的內容相矛盾這裡:
索引的平均大小約為所有被索引內容大小的 10%。
這是索引的預期大小嗎?可以採取什麼措施來減少它?
答案1
平均索引大小並不代表您的索引大小。這可能是因為除了所有檔案都被編入索引之外(由於檔案都很小,因此檔案大小百分比已經很大)之外,文字檔案的內容也會被編入索引,從而進一步增加索引的大小。
答案2
10% 規則依賴一些假設:
- 該語料庫包含包含人類語言散文的文件
- 與元資料相比,文件平均相當大
- 語料庫不包含程式碼檔案(.cpp、.cs 等)
第三點是因為索引在磁碟上被壓縮,假設單字會經常重複。對於大多數文字都是如此(檢查“the”在索引中出現的次數),但對於程式碼來說,變數名稱中有很多唯一的“單字”,它打破了這個假設。
在你的情況下,我懷疑問題是第二個,大量的小文件。每個需要儲存在索引中的檔案都會產生固定數量的元資料開銷。例如,索引必須在內容之上儲存每個檔案的完整路徑、修改日期、建立日期等。每個檔案總計約為 3K,如果平均檔案大小為 4-5K,則很可能是問題所在。
如果搜尋很重要且您無法合併文件,我建議您關閉對您擁有的大量文件類型的內容進行索引。它應該稍微減小大小,同時仍然可以搜尋檔案的元資料。
答案3
我禁用了 Windows 搜尋服務。我使用替代搜尋應用程式。 「Everything」僅 900 KB 大小,可實現超快速文件搜索,「FileSeek Pro」可搜尋文件內容。