[mew-dist 26487] Re: spotlight

Shuichi KITAGUCHI ki at example.com
2005年 7月 9日 (土) 20:41:00 JST


北口です。

Spotlightサポートのコードはちゃんと見てないのですが、Google Desktop Search
(以下GDS)周りでコメントしておきます。

# 適時行を入れ替えてます。

> ・"k/" はすべてのメールに対し検索をかけるコマンド
>        - 対象とするフォルダ名は聞かない(全部だから)
>        - *キーワード*」という名の Virtual モードを作る
>        - ゆくゆくはリファイルなんてなくしたい :-)

これは必須だと思います。

> ・"k?" は特定のフォルダを検索し、"*" マークを付けるコマンド

Spotlightの挙動は知らないのですが、GDS側は結局全部の検索をやって、
結果をフィルタするだけになります。

GDSは、検索は基本的に「Google」です。localhostにHTTP requestを出して
あげると、結果がHTTP body中にXMLで入ってくるので、それをparseします。
ですので、あまり複雑な検索はできませんし、検索対象は「全部」しかない
ので、特定のフォルダを検索するためには結果のプロパティ"uri"を見て
フォルダ名でフィルタする必要があります。

mew-win32に出したgdsgrep.rbは、そんな感じのことをするデモコードで、
検索処理側は、あとは
・フォルダ名を検索対象に加えて、得られる結果を減らす(メモリ削減のため)。
・検索結果のファイルが存在することを確認する。
  (存在しないファイルもGoogleのキャッシュと同様に検索可能なので)
という改善を入れるぐらいで終わりかな、と思っています。


gdsgrep.rbのインデックス生成処理側は、現状メールの解析が素晴らしくいい
加減なので、まじめに直さないといけません。あと、GDSへの登録はCOM経由で
行なうため、インデックス生成時の処理にコンポーネントの登録&削除という
ヒネリが必要になり、Spotlightとはちょっと変わった形になると思います。

> ・すべてのメールに対し、自動的にインデックスを作る
> ・"kM" は、本当に全部のメールに対しインデックスを作る
> ・"km" は、そのフォルダのメールに対しインデックスを作る

1メール毎や、フォルダ毎の作成はそれほどではないと思うのですが、一気に
大量にやるとメモリ消費が莫大になって怖いことになるかもしれません...
後で実験してみます。


P.S.
GDS以外に、Windows Desktop Searchも見ようと思ってます。
あとは、WinFSがどんなのものになるのか...

--
Shuichi Kitaguchi // kit at example.com / ki at example.com



Mew-dist メーリングリストの案内