2.20.2008

C#を使ってインデックスサービスを活用してみる。

以前から書いてるインデックスサービスを使ったファイル検索について。

C#を使うとすぐに接続→検索できるっていうのは以前に書いたとおり。

で、下図がその画面。




















Macぽい画面なのは、私が単にそういうテーマにしているだけで、きちんとC#で書いているし、.NETFramework3.xで動いている。(開発環境はVC#2008)



検索する文字列にもよるけれど、おおむね2秒前後で検索結果が返ってくる。

スタートメニューから呼び出すファイル検索とは偉い違いだ。

それでいて、ある程度満足いく検索結果が出てきているので、もう少し応用したらいろいろ使えそう。

個人的には、MacのSpotlightやGoogle Desktop Searchみたく、インクリメンタルなサーチができると良いなと思っているけど、中ではSQL文を投げているわけだから、そんなに良い性能を得られるとは考えていない。

というわけで、検索文字列を入力→検索ボタンで検索→検索結果が一覧表示っていう、locateコマンドのGUI版みたいなつくりになりそうだ。



ただ、使っているOledbconnectionとかそのあたりのオブジェクトは別にGUIに依存しているわけではないので、CUI版にも応用できれば、Windows版locateコマンドが作れてうれしいかななんて思っていたりもする。でも、このへんにチャレンジするのはもう少しいじってみてから。



それから、インデックスサービスがCPUの能力を喰うためにインデックスサービスを止めているから、この手のソフトを利用できないって人は、インデックスサービスのタスクから、パフォーマンスの調整をして、少しインデックスの作成に関するパフォーマンスを落としてみればいいと思う。

まぁ、パフォーマンスを落とせば、この手のソフトの動きも悪くなるわけだけれども、検索結果として導出されるものは、さほど気にならない程度の変化だと思う。

逆に、CPUのパワーを喰わなくなるので、この手のソフトとの共存を考えている人にはいいかもしれない。



それにしても、C++でやっていたのが実にバカらしい。

(なんて思いつつも、少し悔しかったりするんだよね。HelperAPIに関してはPlatformSDKにサンプルが付いているようだから、気力が持てばそっちの解析もやってみたいな。)

0 件のコメント: