Groongaを囲む夕べ5(http://groonga.doorkeeper.jp/events/15816 )で発表したスライドです。
ちいさなRailsアプリのRroongaよしはら2014/11/29
View Slide
自⼰紹介yoshihara/@hyoshihara04株式会社万葉
株式会社万葉社員募集中です!Railsの受託のお仕事中⼼です現在RailsをやってなくてもOK
本題RroongaをつかってRailsアプリで全⽂検索を実装した話をします
そのまえにかなりライトな使い⽅の話です
そのまえにチュートリアルレベル
アプリ社内での⽂章公開・議論ツール簡単に⾔うとブログ
アプリ仕様Ruby2.1.3Rails4.1.4RDB:PostgreSQL(RDS)Rroonga4.0.4サーバ:AWS
開発体制メンバー:5⼈全員がメイン案件のかたわら実装開発期間:約6ヶ⽉
Rroongaで実装した機能記事・コメントの全⽂検索
アプリ規模ユーザー20⼈弱(万葉社内)記事数300弱(現在)コメント数が800ぐらい(現在)
前提すでにブログとしての機能はほぼできてた全⽂検索機能だけを追加したかった
Rroongaをえらんだわけ知り合いが
Rroongaをえらんだわけ「Railsアプリで全⽂検索するの、GroongaつかってたけどElasticSearchに乗り換えるわ」
Rroongaをえらんだわけくやしい
Rroongaをえらんだわけ既存のサーバ、DBに追加しやすかった取り回しがしやすい開発するときも楽
ActiveGroonga?GroongaをRailsのデータストアとして使えるライブラリこれを使えばPostgreSQL使わなくてもいいのでは?
ActiveGroonga?→不採用
不採用の理由ActiveRecordでよく使う機能がなかった親に紐づく⼦のレコードを持ってこれないRails4に非対応
直でRroongaを利用全⽂検索用のクラスを作ってそこからRroongaの機能を呼び出す
スキーマ
記事更新時
記事検索時
選定から実装まで約1⽇(数時間)2⼈(ほぼ1⼈)1⼈が実装(はじめてGroonga触る)もう1⼈はサポート(調査)
実装時Rubyでスキーマかけるのうれしいむずかしい検索したくなったときも楽そう
実装時つらかったところスキーマのマイグレーションがないProductionだと毎回作りなおす⼿元ではスキーマ変更ごとにDBパスを変えるようにした
実際に全⽂検索してみて快適なによりサクッと全⽂検索が実装できてよかったあまり時間が割けなかったため
サンプルアプリ発表したブログと同じ流れで全⽂検索をするRailsアプリのサンプル対象テーブルやカラムの数は減らしています(アプリ本体はOSSにするか協議中)������������������������������������
まとめ⼩さなRailsアプリでRroongaをつかった簡単に実装できて満⾜に使っているライトユーザーの発表でした