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

Groongaの特徴

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