Redmineで全文検索するとかなり時間がかかります。
クリアコード社内でもRedmineを使用しており、全文検索が遅いことは以前から問題視していました。
最近Redmineでの全文検索を高速に実行できるようになるプラグインを開発したので紹介します1。
リンク先を見てもらえばわかるとおり、PostgreSQLとMySQL(MariaDB)に対応しています。 それぞれPGroongaとMroongaを使用しています。
このプラグインを使うと、デフォルトの全文検索と比較して以下のメリットがあります。
-
高速
-
日付ではなくスコア順に並ぶので関連性が高いものが上に表示されやすい
-
pgroonga -mroonga
のようにマイナスを付けるとpgroongaは含むがmroongaは含まないというものも検索できる
インストール方法
プラグインをインストールする前に、使用しているRDBMSに合わせてPGroongaまたはMroongaをインストールしておいてください。
インストール方法は以下の通り簡単です。PostgreSQLでもMySQLでも同じ方法でセットアップできます。
$ cd redmine/plugins
$ git clone https://github.com/okkez/redmine_full_text_search.git full_text_search
$ cd ../
$ ./bin/rake redmine:plugins:migrate RAILS_ENV=production
最後にRedmineを再起動すれば、今までと同じように右上の検索ボックスを使って高速に全文検索できます。
他のプラグイン
他には以下のようなプラグインがあります。
-
Postgresql Full Text Search - Plugins - Redmine
- PostgreSQL で全文検索用のインデックスを追加するプラグイン
-
Full text searching plugin for Redmine (Elasticsearch) - Plugins - Redmine
- Elasticsearch を使うプラグイン
まとめ
Redmineで全文検索を高速に実行する方法を紹介しました。
-
Redmine本家にも登録しました https://www.redmine.org/plugins/full_text_search ↩