Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ちいさなRailsアプリのRroonga

Dbc53b57fdebd32889492cec2449011c?s=47 yoshihara
December 04, 2014

 ちいさなRailsアプリのRroonga

Groongaを囲む夕べ5(http://groonga.doorkeeper.jp/events/15816 )で発表したスライドです。

Dbc53b57fdebd32889492cec2449011c?s=128

yoshihara

December 04, 2014
Tweet

Transcript

  1. ちいさなRails アプリの Rroonga よしはら 2014/11/29

  2. 自⼰紹介 yoshihara/@hyoshihara04 株式会社万葉

  3. 株式会社万葉 社員募集中です! Railsの受託のお仕事中⼼です 現在RailsをやってなくてもOK

  4. 本題 Rroongaをつかって Railsアプリで 全⽂検索を実装した 話をします

  5. そのまえに かなり ライトな使い⽅の 話です

  6. そのまえに チュートリアルレベル

  7. アプリ 社内での⽂章公開・議論ツール 簡単に⾔うとブログ

  8. アプリ仕様 Ruby2.1.3 Rails4.1.4 RDB:PostgreSQL(RDS) Rroonga4.0.4 サーバ:AWS

  9. 開発体制 メンバー:5⼈ 全員がメイン案件のかたわら実装 開発期間:約6ヶ⽉

  10. Rroongaで実装した機能 記事・コメントの全⽂検索

  11. アプリ規模 ユーザー20⼈弱(万葉社内) 記事数300弱(現在) コメント数が800ぐらい(現 在)

  12. 前提 すでにブログとしての機能はほ ぼできてた 全⽂検索機能だけを追加したか った

  13. Rroongaをえらんだわけ 知り合いが

  14. Rroongaをえらんだわけ 「Railsアプリで全⽂検索するの、 Groongaつかってたけど ElasticSearchに乗り換えるわ」

  15. Rroongaをえらんだわけ くやしい

  16. Rroongaをえらんだわけ 既存のサーバ、DBに追加しやす かった 取り回しがしやすい 開発するときも楽

  17. ActiveGroonga? GroongaをRailsのデータストア として使えるライブラリ これを使えばPostgreSQL使わ なくてもいいのでは?

  18. ActiveGroonga? →不採用

  19. 不採用の理由 ActiveRecordでよく使う機能が なかった 親に紐づく⼦のレコードを持ってこれ ない Rails4に非対応

  20. 直でRroongaを利用 全⽂検索用のクラスを作ってそ こからRroongaの機能を呼び出 す

  21. スキーマ

  22. 記事更新時

  23. 記事検索時

  24. 記事検索時

  25. 選定から実装まで 約1⽇(数時間) 2⼈(ほぼ1⼈) 1⼈が実装(はじめてGroonga触る) もう1⼈はサポート(調査)

  26. 実装時 Rubyでスキーマかけるのうれし い むずかしい検索したくなったと きも楽そう

  27. 実装時つらかったところ スキーマのマイグレーションが ない Productionだと毎回作りなおす ⼿元ではスキーマ変更ごとにDBパス を変えるようにした

  28. 実際に全⽂検索してみて 快適 なによりサクッと全⽂検索が実 装できてよかった あまり時間が割けなかったため

  29. サンプルアプリ 発表したブログと同じ流れで 全⽂検索をするRailsアプリのサ ンプル 対象テーブルやカラムの数は減らして います (アプリ本体はOSSにするか協議中) ������������������������������������

  30. まとめ ⼩さなRailsアプリでRroongaを つかった 簡単に実装できて満⾜に使って いる ライトユーザーの発表でした