石橋"rubyholic"秀仁です
# To: ruby-list, Cc: 原さま m(__)m

いま、bladeの実装にとても興味があります。というのも、
  [ruby-list:19581],[ruby-list:19630],[ruby-list:19698]
    Re: ruby-list の過去ログの作り方
  [ruby-list:19722] [PROPOSAL] Reimplement 'blade'
あたりを参考に、取り組んでみようと思いましたので。

# [ruby-list:19630][ruby-list:19657]で言及されているような、
#   スレッディング部分のライブラリ/フレームワーク
# が本来のターゲットで、ぼくがもっとも興味があるところです。


bladeの仕組みについて確認させて頂いてもよろしいでしょうか?
以下にぼくの推測を書いてみました。

 用語の定義 (便宜上)
  * ヘッダ情報:メールヘッダのSubject:,From:,Date:,In-Reply-To:など
  * 通し番号:"[ruby-list:19581]"の"19581" (fmlでは "X-Mail-Count: .*")
  * ML名:"[ruby-list:19581]"の"ruby-list" (fmlでは "X-ML-Name: .*")

 データ構造
  * メールはそのままファイルに保存。通し番号をファイル名にする。
    複数のMLに対応するため、メールはMH形式でML名のフォルダに保存?
  * DBはメールのヘッダ情報だけを持つ。テーブルは (いまのところ) 一つ。
    タプルは、代表的なヘッダフィールド (Subject:など) と通し番号。
    通し番号がテーブルの主キー。
  * DBはメール本文を持たない。主キー (通し番号) から本体ファイルを参照。

 検索方式
  * ヘッダ情報や通し番号での検索はDBで (SQLのselect文)
  * 本文中キーワード検索はnamazuで

という理解でよろしいでしょうか?


ちなみに、bladeの検索方式は素晴らしいと思いますです。
  * namazuではヘッダ情報による範囲指定などができません。
  * DBでは本文のキーワード検索が重い処理になります。
両者を組合せて弱点を克服しているといえますね。
# いくつか実装されていない機能があるのは残念 :-)

これから作業していきたいので、
bladeの実装で工夫されたところや、
参考になりそうな tips など、
情報を与えて下されば幸いです m(__)m > 原さま & all

# 気長にお返事をお待ちしております :-)

それではよろしくお願い致します。

--
Hideto "rubyholic" ISHIBASHI
http://www.rr.iij4u.or.jp/~hideto-i/