namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: field specified search



Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:

>> さすがに今の仕組みのままで Date: Subject: などを NMZ.i, NMZ.w に記
>> 録していくとひどく効率が悪くなるのでフィールドのインデックスは別の
>> ファイルに分けた方が良さそうです。たとえば NMZ.field.date,
>> NMZ.field.subject みたいな感じで (形式は単なる行指向のテキスト)。
>
>NMZ.f から検索するようにしてもらえると、よく使うフィールドを対象にする
>分にはデータベースが増えないので、少しうれしいのですが…

あ、そういう方法も考えられますね。ディフォルトでは Subject: From:
Date: が入っていますし。NMZ.fのフォーマットは今のままでは都合が悪
いのでいずれ変更しようと思っています。


>(検索したいフィールドは、要約に入れるように設定してもらう)

ただ、メタ的なデータだと要約に表示されても嬉しくないのですよね。 
Message-Id とか。 NMZ.fの中で表示/非表示を指定するようにすれば良い
のですが。

検索の効率的には NMZ.field.subject, NMZ.field.date みたいにファイ
ルを分けた方が良いはずです。 2万通のメイルくらいになると NMZ.fにひ
とまとめの方法だとサイズがかなり大きく (15MBくらい?) なりますし。

まとめると

  1. bit演算で実現する (NMZ.iの拡張)
      ◎ データベースのサイズは増えない
      × フレイズ、正規表現の検索はできない
      ◎ 検索効率は最高 (通常の単語検索の速度)
      × 拡張性はない
      × 実装が面倒

  2. 新たに NMZ.field.{subject,from.date,...} を作る
      × データベースのサイズは増える
      ◯ 正規表現がばりばり使える
      △ 検索効率はそこそこ (行指向のgrep)
      ◯ 拡張性がある。
      ◎ 実装は最も単純

  3. NMZ.f のフォーマットを変えて対応する
      ◯ データベースのサイズはほとんど増えない
      ◯ 正規表現がばりばり使える
      × 検索効率は悪い
      ◯ 拡張性がある。
      ◯ 実装は簡単

のようになりますけど、どれが良いでしょうね? 私としては 2. か 3. か
で迷うところです。うーむ。

-- Satoru Takabayashi
デイタベイスと書く人っているのかしらん?