« もう一つのRedmine製パッケージ製品ANKO REDMINE | トップページ | 【告知】3/5土にRxTStudy #14 「Redmineの未来を考える - 機能・運用・コミュニティ」を開催します »

2016/02/03

Redmineの全文検索にPostgresSQLを使ってLike検索を高速化するRedmine PostgreSQL Search plugin

Redmineの全文検索にPostgresSQLを使ってLike検索を高速化するRedmine PostgreSQL Search pluginを見つけたのでメモ。

【参考】
Postgresql Full Text Search - Plugins - Redmine

jkraemer/redmine_postgresql_search: PostgreSQL full text search plugin for Redmine

Redmineの検索機能の改善はチケット管理システムにとって重要な要件だ: プログラマの思索

第8回東京Redmine勉強会の感想 #redmineT: プログラマの思索

Redmineチューニングの実際と限界(@akahane92)

PostgreSQLの日本語対応全文検索モジュールpg_bigmとPGroongaを検証してみた - CreateField Blog

【1】Redmine PostgreSQL Search pluginは下記の機能を持つらしい。

(引用開始)
Redmine PostgreSQL Search Makes Redmine search use PostgreSQL full text search instead of LIKE queries.
(引用終了)

(引用開始)
This plugin changes the default Redmine search to use PostgreSQL full text indices.

Search results will be sorted by relevance instead of modification date, hits in titles / names will generally score higher than hits in desciption / body text. Term (foobar) and Prefix Queries (foob*) are supported, the usual Redmine options (titles only and all words) work as expected.
(引用終了)

【2】Redmine PostgreSQL Search pluginが興味を引く理由は、Redmineの検索機能の改善はチケット管理システムにとって重要な要件だ: プログラマの思索に書いたように、チケットが数十万件を超えると、Redmineの全文検索機能の応答時間が大きくかかるようになり、業務に支障が出る状況になるからだ。

当初は、一つのチームでこっそり始めたRedmineも、たくさんのチーム、たくさんの部署に使われて、運用が広がると、チケット数はどんどん増えていく。
増大するチケットの検索の性能要件が悪くなると、いつでもすぐに情報を取り出せなくなるから、チケットやWikiに情報を蓄積できるというチケット管理システムの意味がなくなる。

【3】Redmine PostgreSQL Search pluginは、PostgresSQLのフルテキストエンジンを使って、RedmineのLike検索を高速化できるようだ。
興味深いのは、日本語、ドイツ語などのように、各言語でpg_catalogを作れる点だろう。
つまり、非英語の言語であっても、全文検索できるような仕組みがあるらしい。

実際、下記のrakeコマンドでPostgresSQLにインデックスを作成するらしい。

bundle exec rake redmine_postgresql_search:rebuild_index

運用方法としては、毎日夜間または、Cronで定期的ににインデックスを作り直すといいかもしれない。
そうすれば、最新のインデックスを元に高速検索できるだろう。

検証できていないので、情報を集めてみたい。

|

« もう一つのRedmine製パッケージ製品ANKO REDMINE | トップページ | 【告知】3/5土にRxTStudy #14 「Redmineの未来を考える - 機能・運用・コミュニティ」を開催します »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« もう一つのRedmine製パッケージ製品ANKO REDMINE | トップページ | 【告知】3/5土にRxTStudy #14 「Redmineの未来を考える - 機能・運用・コミュニティ」を開催します »