[RFC] IMAP searchって高性能

こんにちは。
肌荒れと日々戦うおじいさんです。
昨日ちょこっと友達とバスケの1on1をやっていたんですが(どちらも素人)、その時に大量に汗をかいてしまって、うっかり肌を引っかいてしまいましたorz
で、本日肌荒れに苦しんでおります。
それはともかく、IMAPのSearchコマンドについて。結構高性能っぽいです。

まず、IMAPのSearchコマンドってのは、いくつかに分けて拡張されています。
したがって、Searchコマンド関連のRFCは以下になります。

 RFC2060 INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
 RFC4731 IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned
 RFC5032 WITHIN Search Extension to the IMAP Protocol

とはいっても、下の二つはホント拡張なので基本を抑える時には考えなくても問題ないです。
それで、RFC2060を見るわけですが、セクションは6.4.4.です。

 http://www.ietf.org/rfc/rfc2060.txt
 http://www.lins.jp/~obata/imap/rfc/rfc2060ja.html#s6.4.4

概要ですが、以下になります。

 コマンド
  Search <検索基準>
 応答
  OK/NG、検索にHITしたUIDが返却される。
 例
C: A282 SEARCH FLAGGED SINCE 1-Feb-1994 NOT FROM "Smith"
S: * SEARCH 2 84 882
S: A282 OK SEARCH completed

 
複数キーを並べた場合は、AND検索になります。OR検索、NOT検索もあります。


  OR
  いずれかの検索キーにマッチするメッセージ。
  NOT
  指定された検索キーにマッチしないメッセージ。


他にも、FROMで検索できたり、メッセージの大きさで検索できたりします。すげぇ高性能。

他注意点というか、概要丸写し。

 ・サーバ実装は TEXT と MESSAGE 以外の端末内容メディアタイプを持つ [MIME-IMB] ボディパートを、 SEARCH マッチングでの考慮から除外してもよい。
 ・US-ASCII はサポートされなければならない
 ・他の [CHARSET] はサポート されてもよい。もしサーバが指定された [CHARSET] をサポートしないならば、タグ付き NO 応答を ( BAD ではなく) 返さなければならない。
 ・[MIME-IMB] 内容伝送符号化と、 [RFC-822]/[MIME-IMB] ヘッダーでの [MIME-HDRS] 文字列は、 US-ASCII 以外の [CHARSET] でテキストを比較する前に、復号化されなければならない。


なるほど、というわけでWORDなんかの添付ファイルは検索対象からはずしていいわけですね。
でも、これを見ていると、テキストの添付ファイルは検索対象からはずしちゃイカンという風に読めますが、ホントだろうか?
Courierで試してみましたが、どうやらホントのようで。。。かなりびっくりです、ハイ。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック