From: Hideto ISHIBASHI Date: 2000-05-13T06:18:25+09:00 Subject: [ruby-list:22494] [Q] blade internal design 石橋"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/