我必须使用 Windows Search 索引大量数据,因此我想估算一下索引大小。我已索引了一部分数据(约 60GB;13e6 页文本数据,每页约 4-5KB)。
索引已增长到约 78GB,因此现在它占用的空间比数据本身还要多。这些结果与我读到的内容相矛盾这里:
索引的平均大小约为所有被索引内容大小的 10%。
这是索引的预期大小吗?可以做些什么来减少它?
答案1
平均索引大小并不能说明您的索引大小。这可能是因为除了所有文件都被编入索引(由于您的文件都很小,因此从大小百分比来看,这已经很大了),文本文件的内容也被编入索引,从而进一步增加了索引的大小。
答案2
10% 规则依赖于许多假设:
- 该语料库包含人类语言的散文文件
- 与元数据相比,文件平均大小相当大
- 语料库不包含代码文件(.cpp、.cs 等)
第三个原因是索引在磁盘上压缩时假设单词会经常重复。对于大多数文本来说都是如此(检查“the”在索引中出现的次数),但对于代码来说,变量名称中存在如此多独特的“单词”,因此打破了这一假设。
不过,就你的情况而言,我怀疑问题出在第二个方面,即大量的小文件。每个文件都需要存储在索引中,这会产生固定数量的元数据开销。例如,索引必须在内容之上存储每个文件的完整路径、修改日期、创建日期等。每个文件加起来大约 3K,如果平均文件大小为 4-5K,那么这很可能就是问题所在。
如果搜索很重要,而您又无法合并文件,我建议关闭对那些有大量文件类型的内容的索引。这样可以稍微减小文件大小,同时仍然可以搜索文件的元数据。
答案3
我禁用了 Windows 的搜索服务。我使用其他搜索应用程序。只有 900 KB 大小的“Everything”可以进行超快速文件搜索,而“FileSeek Pro”可以搜索文件内容。