Rabbit Slide Show

Mroonga Meetup 2014/06/29

Description

2014年6月29日に行われたMroonga Meetupで使用したスライドです。 Mroongaを初めて触れる人向けに演習を通じて基本をおさえてもらうための資料です。

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

Other slides