Redmineの全文検索を高速化するプラグインfull_text_searchのリンク
Redmineの全文検索を高速化するプラグインfull_text_searchが公開されていたのでメモ。
読んでみると、すごくワクワクする。
【参考】
Full text search - Plugins - Redmine
Redmineで高速に全文検索する方法 - ククログ(2016-04-11)
okkez/redmine_full_text_search: Full text search for Redmine
PostgreSQLで日本語全文検索 - LIKEとpg_bigmとPGroonga - ククログ(2015-05-25)
Ruby on RailsでMySQLとMroongaを使って日本語全文検索を実現する方法 - ククログ(2015-11-10)
Ruby on RailsでPostgreSQLとPGroongaを使って日本語全文検索を実現する方法 - ククログ(2015-11-09)
【1】Redmineはオープンソースでありながら、機能もUIも優れたチケット管理システムだと思うが、おそらく唯一の弱点は、Git連携と全文検索の高速化だと思う。
@akahane92さんは以前から、Redmineの弱点の一つとして、Redmineの画面の右上にある検索ボックスから全文検索する時にチケット数が20万件を超えると応答時間がすごく遅くなる、と指摘されていた。
Redmineは当初は小規模チームのタスク管理に使われていたから、そんなレベルまで大規模に使われる事例は想定していなかったに違いない。
だから、チケット枚数が20万件以上、数百万件を超える場合に全文検索が遅くなるのは仕方ないと思う。
だが、チケットやWikiの履歴を調べたい時に欲しい情報がすぐに検索できなければ、チケット管理システムにナレッジを蓄積するメリットが薄れてしまう。
この全文検索の高速化の問題については、JPLはたぶん知っていて、デフォルト検索が全件検索にならないように、絞り込み機能を追加したり、検索条件を増やしたりして対応してきた。
その問題点や自分が考えていることは既に書いた。
Redmineの検索機能の改善はチケット管理システムにとって重要な要件だ: プログラマの思索
【2】上記の問題に対し、full_text_searchプラグインのメリットは、MySQLとPostgresSQLの2つのDBに対応していて、全文検索エンジンの別サーバーを配置する必要もなく、特に日本語の全文検索に強い点だろう。
「日付ではなくスコア順に並ぶので関連性が高いものが上に表示されやすい」機能があるのも、全文検索の使い勝手が上がるだろう。
また、インデックスをCronで作り直すことも特に記載されていないので、保守も簡単であるように思われる。
リリースノートを見る限り、たぶん、日本語だけでなく他の言語でも同様に高速化しているだろうと思われる。
他に、上記の記事に記載されているように、全文検索を強化するプラグインは既にいくつか公開されている。
だが、日本語の全文検索の高速化に特化したプラグインはありがたい。
Redmineの全文検索にPostgresSQLを使ってLike検索を高速化するRedmine PostgreSQL Search plugin: プログラマの思索
Postgresql Full Text Search - Plugins - Redmine
Full text searching plugin for Redmine (Elasticsearch) - Plugins - Redmine
Redmineがこのようにどんどん機能強化されていく様子は、興味深い。
Redmineも、既に成功したオープンソースの事例の一つになればいいなと思う。
【追記】
@akahane92 さんが200万チケットで全文検索を検証した所、1秒以内で検索結果が表示されたらしい。
おそらくこの機能を使えば、Redmineの全文検索の高速化の問題は解決できるだろう。
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
コメント