Text
Page: 1
Groongaの
特徴
須藤功平
クリアコード
CROSS 2015
2015-01-29
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 2
他のエンジンとの違い
既存システムとの連携
毎月肉の日リリース
Java free
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 3
連携例:Mroonga
Mroonga (むるんが) =
MySQL + Groonga (ぐるんが)
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 4
MySQLと連携するメリット
SQLを使える
クライアントライブラリーが充実
既存の知識を使える
運用ノウハウを使える
レプリケーションの仕方
メトリックスの取り方
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 5
Mroongaで索引作成
-- ストレージエンジンを変更
ALTER TABLE table ENGINE=Mroonga;
-- 全文検索用索引を作成
ALTER TABLE table
ADD FULLTEXT INDEX (column);
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 6
Mroongaで全文検索
SELECT * FROM table
WHERE MATCH (column)
AGAINST ("+単語1 +単語2"
IN BOOLEAN MODE);
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 7
Mroongaの事例
livedoor Blog
http://www.slideshare.net/kazeburo/mroonga-in-
ablogservice
Yahoo! Japanさんの社内
「全文検索エンジンGroongaを囲む夕べ5」で紹介
GMOメディアさんの
各種サービス
http://tech.gmo-media.jp/post/95690476544/data-
migration-from-tritonn-to-mroonga
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 8
MariaDBにバンドル
MariaDB
MySQLのfork
ケースによってはMySQLより高速
10.0.15からMroongaをバンドル
MariaDBをインストール→
Mroongaはインストール済み!
より簡単に使える!
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 9
連携例:groonga-httpd
Groonga用HTTPサーバー =
nginx + Groonga
nginxのモジュールとして実装
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 10
nginxと連携するメリット
nginx提供のHTTP機能を使える
gzip圧縮・HTTPS・認証・…
運用ノウハウを使える
設定方法
チューニング方法 (例:ワーカー数の設定)
無停止アップグレード
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 11
groonga-httpdの設定
http {
server {
location /d/ {
groonga on;
}
}
}
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 12
連携例:Rroonga
Rroonga (るるんが) =
Ruby + Groonga
SQLite3のような手軽さで全文検索
(サーバーではなく、ライブラリーとして利用)
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 13
Rubyと連携するメリット
Rubyとその周辺の機能を使える
書きやすい
ライブラリーを使ってデータ加工
サーバーがいらない
小規模なシステムを手早く構築可能
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 14
Rroongaでデータ登録
table = Groonga["table"]
table.add("key",
:value1 => "value1",
:value2 => "value2")
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 15
Rroongaで全文検索
records = table.select do |record|
(record.value1 =~ "単語1") &
(record.value2 =~ "単語2")
end
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 16
Rroongaの事例
クラウドワークスさん
社員名簿・日報の全文検索で利用
Milkode
(ソースコード検索エンジン)
http://milkode.ongaeshi.me/
るりまサーチ
(Rubyのリファレンスマニュアル検索システム)
http://docs.ruby-lang.org/ja/search/
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 17
連携例:その他
PGroonga (ぴーじーるんが) =
PostgreSQL + Groonga
ROMA (Ruby製の分散KVS)
Groongaの 特徴
Powered by Rabbit 2.1.3
Page: 18
他のエンジンとの違い
既存システムとの連携
毎月肉の日リリース
Java free
Groongaの 特徴
Powered by Rabbit 2.1.3