Rabbit Slide Show

Groongaの特徴

2015-01-29

Description

CROSS 2015のセッション「全文検索エンジン群雄割拠〜あなたが使うべきはどれだ!〜」でGroongaと他の全文検索エンジンとの違いの説明です。

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

Other slides

Mroonga!
2015-10-30