トップ «前の日記(2016/04/25 (月) ) 最新 次の日記(2016/04/27 (水) )» 編集 RSS feed

HsbtDiary


2016/04/26 (火) [長年日記]

bugs.r-l.o の検索バックエンドを elasticsearch にしてみた

最近、elasticsearch を触ることが多いので、bugs.ruby-lang.org で動かしている redmine のバックエンドを elasticsearch に置き換えてみた。

redmine のバックエンドを elasticsearch にするために、今回は上記の redmine_elasticsearch をプラグインとして入れた上で indexing job を非同期実行するために redmine_resque を入れて実現することにした。bugs.r-l.o は heroku で動いているので、elasticsearch と resque を使うために bonsai と heroku redis をアドオンとして追加してから以下の変更を入れた。

  • redmine_elasticsearch には english/russian_mophology プラグイン(elasticsearch-analysis-morphology) をデフォルトで使うようにしているものの、bonsai ではそのプラグインは提供されてないので fork して indexer で使わないようにするようにコードを変更
  • heroku では環境変数 BONSAI_URL として elasticsearch のエンドポイントが提供されるので heroku config:set を利用して redmine_elasticsearch プラグインが使用するエンドポイント名である ELASTICSEARCH_URL に再割り当て
  • redmine_resque を動かすために Procfile に resque を起動するための worker 定義と、Resque.redis の設定を config/initializers/resque.rb に設置

ここまで用意してから heroku にデプロイして、 reindex を実行することで redmine のだいたいのフィールドを elasticsearch に index して検索できるようになった。

https://bugs.ruby-lang.org/help/search_syntax

上記のようなクエリも使えるなっているので少しは便利っぽい。適合率、再現率はよくわからないけど早くなったような気がするのでご活用ください。

Asakusa.rb 第356回

今日もいつも通り神田の永和オフィスで開催。今日は裏で Ruby 2.2.5 と 2.3.1 のリリースが行われていたので www.r-l.o のあれこれをサポートしながら @takkanm , @joker1007 , @a_matsuda との4人で asakusarb.fm のような Rails/Ruby 漫談をしていた。

一番面白かったのは「Ruby の GC が優秀になって、Rails でちょっとオブジェクト減らしたり GC.disable してふがふがという高速化テクニックが通用しなくなったんですよー」「フリーランスとしての雇用が失われてますねー」というやりとり。笹田さん頑張ってる。