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

ちいさなRailsアプリのRroonga

yoshihara
December 04, 2014

 ちいさなRailsアプリのRroonga

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

yoshihara

December 04, 2014
Tweet

More Decks by yoshihara

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. ActiveGroonga?
    →不採用

    View Slide

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

    View Slide

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

    View Slide

  21. スキーマ

    View Slide

  22. 記事更新時

    View Slide

  23. 記事検索時

    View Slide

  24. 記事検索時

    View Slide

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

    View Slide

  26. 実装時
    Rubyでスキーマかけるのうれし

    むずかしい検索したくなったと
    きも楽そう

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide