A regra de 10% baseia-se em várias suposições:
- O corpus contém arquivos com prosa de uma linguagem humana
- Os arquivos, em média, são razoavelmente grandes em comparação com os metadados
- O corpus não contém arquivos de código (.cpp, .cs, ect)
O número 3 é porque o índice é compactado no disco, assumindo que as palavras serão repetidas com freqüência. Isso é verdadeiro para a maioria dos textos (confira quantas vezes 'o' aparece no seu índice), mas para o código existem tantas 'palavras' exclusivas de nomes de variáveis que isso quebra essa suposição.
No seu caso, eu suspeito que o problema seja o número 2, um grande número de arquivos pequenos. Há uma quantidade fixa de sobrecarga de metadados que vem com cada arquivo que precisa ser armazenado no índice. Por exemplo, o índice tem que armazenar o caminho completo, data de modificação, data de criação, ect para cada arquivo sobre o conteúdo. Ele soma cerca de 3 K por arquivo e, se o tamanho médio do arquivo for de 4 a 5 K, provavelmente é o problema.
Se a pesquisa for importante e você não puder combinar o arquivo, recomendamos desativar a indexação do conteúdo desses tipos de arquivo que você tem muito. Ele deve reduzir o tamanho e ainda ter os metadados do arquivo pesquisável.