Redmine のリポジトリ全文検索プラグイン
メリークリスマス!でしたね。今年のクリスマスは ruby を書いて過ごしました。えぇ。ついに ruby デビューです。 作ってたのは Redmine のリポジトリ全文検索プラグインです。会社のプロジェクト管理サイトを Trac から乗り換えるにあたり、これ!ってのが見つけられなかった情弱です。 Trac では、full-text サーチエンジンに Hyper Estraier を使う TracRepoSearch という素晴らしいプラグインを使ってました。ということで、便乗して redmine_reposearch というプラグインを作って見ました。バックエンドも同じく Hyper Estraier です。 個人的に欲しかった機能は、 インストールステップが簡単 プロジェクト、サブプロジェクト、全プロジェクト間で検索できる Redmine のアクセス権管理に対応する MIME タイプを限定して検索する (今後実装予定) です。ある程度は満足がいく出来に作ることが出来ました。インストール方法等は wiki にまとめました。わかりにくかったらお気軽に Issue か Twitter でお申し付けください。 # インストールステップは 2 ステップ これは結構苦労しました。いろんな OSS 検索エンジンの仕様を調べ、一番インストールが簡単で、動作が軽快で、気の利いた ruby バインディングがあるやつを選びました。 ライブラリのインストールとプラグインのインストールのみで動作します。 Estraier の DB は RAILS_VAR/reposearch 以下にプロジェクト毎に作成されます。Ubuntu の場合は、 /var/lib/redmine/reposearch になります。クラスタ組みたい場合は、 RAILS_VAR はアップロードファイル保存ディレクトリでもあるので、ネットワークファイルシステムをマウントするなどすればいいと思います。 あと SCM との連携は fetch_changesets と同じ仕組を流用しています。まだ ruby script/runner "Repository.fetch_changesets" -e production のようなコマンドでは動きません。 /