DocuSleuthCompanion は、検索対象のファイルを検索してインデックスを作成する処理(クローリング)を行います。
これは、検索対象のフォルダを指示してから数分以内に自動的に起動し、それ以降は常に監視を続けていきます。
ファイルの Index 作成は、検索アルゴリズムの都合上、それなりの所要時間がかかります。サーバーを動かすPCの性能にも左右されます。文書量が少ない間は1文書あたり10秒程度でIndex作成が出来ますが、ドキュメント数が増えると1文書あたりの処理時間は長くなります。他にも、処理時間はファイルサイズに依存しますので、手元にあるドキュメントによってこの数値は変動することは認識しておいてください。例えば、巨大なドキュメントになると、1分以上かかるケースもあります。単語数数万とか数十万というケースなので、それほど頻繁に遭遇するものでもないとは思いますが、そのようなデータが多い場合はクローリング時間も長くなる点は考慮しておいてください。
クローリングしたファイルは、引き続き検索用の Index 作成処理に移ります。これが所要時間のほとんどを占める処理であり、また、現時点ではアルゴリズムの工夫による高速化はやり尽くしているので処理時間の短縮は非常に困難です。Index 作成処理自体は並列動作可能ですが、DB関連の処理は並列化が困難であるため、並列度を増やしても劇的な効率化は難しい状態です。
DocuSleuthCompanion にも記述しましたが、CPUパワーに余裕がある場合でも、並列度は 4 程度が妥当です。
現状、手は尽くした状態です。実はもう少し速くすることも可能なのですが、そうすると今度はシステムに過剰な負荷がかかり不安定になるという問題が出てきます。
現時点では、システムが不安定になるような事態の方が問題であると考え、処理を定期的に停止するという負荷低減処理が入っています。
将来的に Windows / .net が改善され、このような問題が起きにくくなれば負荷低減処理の見直しを検討しますが、当面は難しいと思って頂ければと思います。