
Windows Search でかなり大量のデータをインデックス化する必要があるため、インデックスのサイズを概算したいと考えました。データのサブセット (約 60 GB、各ページ約 4 ~ 5 KB のテキスト データ 13e6 ページ) をインデックス化しました。
インデックスは約78GBにまで成長し、今ではデータ自体よりも多くのスペースを占めています。これらの結果は私が読んだものと矛盾しています。ここ:
インデックスの平均サイズは、インデックスが作成されるすべてのコンテンツのサイズの約 10% です。
これはインデックスの予想されるサイズですか? これを減らすにはどうすればよいでしょうか?
答え1
平均インデックス サイズは、実際のインデックス サイズを示すものではありません。これは、すべてのファイルがインデックス化される (ファイルはすべて小さいため、サイズの割合としてはすでに大きい) ことに加えて、テキスト ファイルの内容もインデックス化され、インデックスのサイズがさらに大きくなるためと考えられます。
答え2
10% ルールはいくつかの仮定に基づいています。
- コーパスには人間の言語の散文ファイルが含まれている
- ファイルは平均してメタデータに比べてかなり大きい
- コーパスにはコードファイル(.cpp、.csなど)は含まれていません
3 番目は、単語が頻繁に繰り返されると想定して、インデックスがディスク上で圧縮されるためです。これはほとんどのテキストに当てはまります (インデックスに「the」が何回出現するかを確認してください)。しかし、コードの場合、変数名からの一意の「単語」が非常に多いため、この想定は崩れます。
ただし、あなたの場合、問題は 2 番、つまり多数の小さなファイルにあると思われます。インデックスに保存する必要がある各ファイルには、一定量のメタデータ オーバーヘッドが伴います。たとえば、インデックスは、コンテンツに加えて、各ファイルのフル パス、変更日、作成日などを保存する必要があります。ファイルごとに約 3K になり、平均ファイル サイズが 4~5K の場合、これが問題である可能性が最も高くなります。
検索が重要で、ファイルを結合できない場合は、たくさんあるファイル タイプのコンテンツのインデックス作成をオフにすることをお勧めします。これにより、ファイルのメタデータを検索可能にしたまま、サイズをいくらか削減できます。
答え3
Windows の検索サービスを無効にしました。代わりの検索アプリケーションを使用しています。超高速ファイル検索には 900 KB のサイズしかない「Everything」、ファイルの内容を検索するには「FileSeek Pro」を使用しています。