Text
Page: 1
Mroonga
Meetup
HAYASHI Kentaro
クリアコード
2014/06/29
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 2
はじめに
開催の目的
自己紹介
Mroongaとは
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 3
はじめに(2)
インストール
課題と演習
Any Questions?
片付け撤退
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 4
開催の目的
「全文検索をしたい人の最初の一歩を踏みだしやすくしよう」
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 5
自己紹介タイム
参加のきっかけ
Groonga族とのかかわり
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 6
Mroongaとは
Tritonnの後継
Sennaを組み込んだプロダクト
Tritonnの制約を解消
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 7
Tritonn vs Mroonga(1)
TritonnはMySQLへのパッチ前提
Mroongaはプラグインとして導
入できる
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 8
Tritonn vs Mroonga(2)
Tritonnはテーブルロックでス
ケールしない
Mroongaは参照ロックフリー
検索/更新性能の向上
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 9
Mroongaとパッケージ
Debian
Ubuntu
CentOS
Fedora
Windows
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 10
Mroonga on Debian
MySQL 5.5系
Debian 7.4 (wheezy)
Debian 8 (jessie)
Debian unstable (sid)
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 11
Mroonga on Ubuntu
PPA (Launchpad)でリリース
MySQL 5.5系
Ubuntu 12.04 (Precise)
Ubuntu 13.10 (Saucy)
来月でサポート終了
Ubuntu 14.04 (Trusty)
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 12
PPA on Launchpad
PPAでのインストール
sudo
sudo
sudo
sudo
Mroonga Meetup
add-apt-repository -y universe
add-apt-repository -y ppa:groonga/ppa
apt-get update
apt-get install -y -V mysql-server-mroonga
Powered by Rabbit 2.1.2
Page: 13
Mroonga on CentOS 5
CentOS 5
以前はMySQLが古すぎたので、
MySQL 5.6対応パッケージを提供
MySQL 5.5(SCL)対応パッケージに移
行
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 14
Mroonga on CentOS 6
CentOS 6
MySQL 5.1しか使えないというのは
古い情報です!
MySQL 5.5対応(SCL)パッケージに移
行
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 15
Mroonga on CentOS
CentOS 5やCentOS 6でMySQL 5.6
wingリポジトリをお勧めしています
http://wing-repo.net/
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 16
Mroonga on Fedora
Fedora 20
MySQL 5.5 & MariaDB 5.5対応
MariaDB 5.5対応がつらいのでやや
古い
Fedora公式リポジトリでは未リリー
ス
Mroonga含めてインストールしたいなら
Groongaリポジトリを登録する
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 17
Mroonga on Windows
従来zipのみ提供
ビルド協力者増加によりmsiも
提供
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 18
Mroongaの動作モードの違い
ラッパーモード
データは他のストレージエンジンに
格納
全文検索をMroongaでがんばる
トランザクションでロールバックすると不
整合発生
チューニングはMySQLの範囲で
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 19
Mroongaの動作モードの違い
(2)
ストレージモード
全部Mroongaでがんばる
トランザクション何それ?
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 20
ストレージモード
ENGINE=mroongaと覚えましょう
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 21
ラッパーモード
コメントでエンジンを指定
ENGINE=mroonga COMMENT='engine "innodb"'
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 22
パーサーの指定
コメントでパーサーを指定
Groongaの用語だとトークナイザ
ー
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab"'
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 23
ノーマライザーの指定
コメントでノーマライザーを指
定
FULLTEXT INDEX (content) COMMENT 'normalizer "NormalizerAuto"'
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 24
パーサー&ノーマライザーの
指定
両方指定したいときは,で区切る
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab", normalizer "NormalizerAuto"'
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 25
MATCH AGAINSTとBOOLEAN
MODE
QUERY EXPANSION MODE
MySQLにおまかせの類似文書検索
BOOLEAN MODE
明示的に検索を制御
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 26
UDF(ユーザ定義関数)
last_insert_grn_id
mroonga_snippet
mroonga_escape
mroonga_command
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 27
last_insert_grn_id
最後に挿入したレコードのIDを
返す関数
ストレージモード用
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 28
mroonga_snippet
スニペットを返す関数
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 29
mroonga_escape
クエリを適宜エスケープするた
めの関数
複数のキーワードは別途がんば
る必要あり
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 30
mroonga_command
MroongaからGroongaの機能を直
接叩くための関数
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 31
実践してみよう
位置情報検索
エスケープ
重みづけして検索してみよう
http://packages.groonga.org/
tmp/qiita-article.txt
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 32
位置情報検索
⏳Qiitaの位置情報検索の記事を試してみよう
http://qiita.com/groonga/items/7abca5004d2ae386d388
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 33
mroonga_escapeを使ってみよ
う
⏳Qiitaのmroonga_escapeの記事を試してみよう
http://qiita.com/groonga/items/0ae7f637525c7b5f2cb1
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 34
重みづけして検索してみよう
⏳QiitaのWプラグマの記事を試してみよう
http://qiita.com/groonga/items/8bcd5f9647f62b96584f
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 35
Groonga vs Mroonga
既存資産があるならMroonga
mroonga_commandを活用
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 36
大規模なデータを使いたい
Wikipedia
情報学研究データリポジトリ
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 37
Wikipedia
ウィキペディア日本語版
http://ja.wikipedia.org/wiki/
Wikipedia:データベースダウンロー
ド
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 38
情報学研究データリポジトリ
(1)
国立情報学研究所
http://www.nii.ac.jp/
cscenter/idr/index.html
データセットをいくつか提供
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 39
情報学研究データリポジトリ
(2)
ニコニコデータセット
ニコニコ動画コメント等データ
ニコニコ大百科データ
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 40
ニコニコ動画コメント等デー
タ(1)
動画メタデータ
2012年11月初旬までのデータ
IDなど個人を特定しないデータ
タイトル,説明文,タグ,投稿日時,再
生数,コメント等
約12GBほど
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 41
ニコニコ動画コメント等デー
タ(2)
ニコニコ大百科データ
2014年2月上旬までのデータ
約300GB
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 42
感謝
WEICさん
会場提供ありがとうございま
す!
Mroonga Meetup
Powered by Rabbit 2.1.2
Page: 43
おわり
Any Questions?
Mroonga Meetup
Powered by Rabbit 2.1.2