DocuSleuthCompanion は、検索対象のファイルを検索してインデックスを作成する処理(クローリング)を行います。
これは、検索対象のフォルダを指示してから数分以内に自動的に起動し、それ以降は常に監視を続けていきます。
ファイルの Index 作成は、検索アルゴリズムの都合上、それなりの所要時間がかかります。サーバーを動かすPCの性能にも左右されます。通常、1文書あたり数秒程度でIndex作成が出来ますが、ファイルの内容によっては処理時間が長くなります。例えば、画像を大量に貼り付けた PDF は解析に時間がかかります。手元にあるドキュメントによってこの数値は変動することは認識しておいてください。例えば、巨大なドキュメントになると、1分以上かかるケースもあります。単語数数万というケースなので、それほど頻繁に遭遇するものでもないとは思いますが、そのようなデータが多い場合はクローリング時間も長くなる点は考慮しておいてください。PDF以外でも、Excel や CSV ファイルは測定データが保管されているケースが多く、それらも時間がかかります。
クローリングしたファイルは、引き続き検索用の Index 作成処理に移ります。これが所要時間のほとんどを占める処理であり、また、現時点ではアルゴリズムの工夫による高速化はやり尽くしているので処理時間の短縮は非常に困難です。Index 作成処理自体は並列動作可能ですが、DB関連の処理は並列化が困難であるため、並列度を増やしても劇的な効率化は難しい状態です。
CPUパワーに余裕がある場合でも、並列度は 4 程度が妥当です。
今回、DBの処理を大幅に見直すことで、クローリング時間は劇的に短くなりました。技術的なブレイクスルーを達成すれば、さらなる高速化もあり得ますが、今は小さな修正を積み上げて時間短縮に繋げるという地道な積み重ねをしています。
今後も、効率面の問題は随時見直し・改善をしていきます。