~DovecotとApache Solrによるメールの全文検索~
今月の気になるオープンソース情報(2017年2月号)
OSS研究室 森 彰吾
今回は Dovecot + Apache Solr によるメールの全文検索をご紹介します。
まずApache Solrについてですが、Apache Solrはオープンソースの全文検索システムです。また日本語の全文検索に必須となる文章を単語に分割する形態素解析も行うことができます。その他、負荷分散や冗長構成も取ることができる高機能な全文検索システムです。
次にDovecotですが、非常に有名なPOP/IMAPサーバです。Postifx等のMTAのSMTP認証バックエンドに対応したり、NFS上で動作が可能になっているなど、非常に高機能です。またDovecotの特長の一つとして、プラグインを設定して新たな機能を利用することができます。
Dovecotのプラグインに、「FTS」というプラグインが存在します。これは Dovecotで全文検索(Full Text Search:FTS)を実現するためのプラグインです。さらに別のプラグインとして、「FTS-Solr」が存在します。これはDovecotとApache Solrを全文検索のバックエンドとして利用するためのプラグインです。これらのプラグインとApache Solrを組み合わせることで、Dovecotに全文検索の機能を追加することができます。
Dovecot + Apache Solrによって全文検索を実装すると、非常に高速にメールの検索ができるようになります。デージーネットの検証では約20000件(700Mbyte)のメールデータの本文から、同じキーワードを検索する場合、以下のような結果になりました。
- Apache Solrを使用しない場合: 検索結果の表示まで約30秒
- Apache Solrを使用する場合 : 検索結果の表示まで1秒未満
また「FTS-Solr」には、メールの添付ファイルのフィルタリングをする機能があります。この機能を使うと、例えばPDFの中身をテキストにして、検索インデックスを作ることができます。つまりメールの本文の検索で、添付ファイルの中身まで検索が行えるようになるということです。
全文検索の機能は、Thunderbirdなどのメジャーなメールクライアントで利用することができます。また、デージーネットで商用サポートを開始したWEBメール「Roundcube」でも利用することができます。メールの検索速度が業務の効率に直結する人も多いと思いますので、導入を検討されてはいかがでしょうか?