2005-04-08 [長年日記]

[Q3] キーワード

メールにキーワードをつけたいという話は結構前からBTSに入っているのですが、いくつかの問題から実装できていません。

主な問題点はどこにキーワードを保存するかという点に集約されそうです。QMAIL3では*1メッセージをインデックスと本文に分けて保存しています。キーワードをインデックス側に持たせるときの問題点は二つあります。一つ目は全文検索の対象にならないことです。今のnamazuを使った全文検索では、本文側にキーワードが入っていないと検索対象になりません*2。もう一つの問題は、IMAP4で使った時に複数のクライアント間でキーワードが共有できない点です。この問題は任意のPERMANENTFLAGSをサポートしているIMAP4サーバであればそこにキーワードを押し込む事で解決できるかもしれません。逆に本文にキーワードを持たせる(例えば、X-QMAIL-Keywordのようなヘッダに入れる)場合も問題点があります。QMAIL3では本文は一度保存したら書き換えないという前提なので、キーワードを設定した時に別のメッセージにコピーして保存しなおす必要があります。POP3アカウントのローカルフォルダの場合にはまだ良いですが、IMAP4アカウントのリモートフォルダの場合には一度メッセージをダウンロードして編集してアップロードしなおす必要があります*3。これではパフォーマンスも悪いですし、元のメッセージは削除マークが付いたまま残るので気持ちが悪いです*4

全文検索でヒットしなくてもあきらめるか全文検索エンジンを変えた上で、任意のPERMANENTFLAGSをサポートしていないIMAP4サーバは切り捨ててサポートするというのが、一番可能性が高いのではないかと思います。しかし、PERMANENTFLAGSをサポートしていないIMAP4サーバを切り捨てるのは構わないのですが*5、全文検索にヒットしないのはあんまりなのでいまいちやる気がわきません。やっぱりGDSでしょうか。

*1  初代QMAILから変わっていませんが

*2  別の検索エンジンを使えば、検索エンジン次第で対処可能かもしれません

*3  IMAP4のプロトコルではメッセージの編集ができないですし

*4  これはUID EXPUNGEが使えると何とかなるかも

*5  自分で使ってないし

[]