Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ActiveGroonga? →不採用

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

スキーマ

Slide 22

Slide 22 text

記事更新時

Slide 23

Slide 23 text

記事検索時

Slide 24

Slide 24 text

記事検索時

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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