Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2...
Transcript of Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2...
![Page 1: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/1.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga meetup #2
林健太郎 クリアコード
Groonga meetup2014/04/29
![Page 2: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/2.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
はじめに
開催の目的
今回の内容
Any Questions?
![Page 3: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/3.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
開催の目的(1)
「全文検索をしたい人の最初の一歩を踏みだしやすくしよう」
![Page 4: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/4.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の内容(1)
全文検索事始め
GroongaやMroongaの特長の紹介
最新版の導入について
GroongaやMroongaの環境構築
![Page 5: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/5.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の内容(2)
題材の説明と実際の演習(随時)
Any Questions?
![Page 6: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/6.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
全文検索事始め
既存のシステムに全文検索導入したい
手持ちのメタ情報を効率良く検索したい
![Page 7: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/7.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(1)
全文検索と即時更新参照ロックフリー
更新しつつ検索OK
カラムストアを採用集計クエリを高速に処理可能
![Page 8: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/8.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(2)
豊富なトークナイザー検索漏れないことを重視しますか?
検索精度を重視しますか?
位置情報検索のサポート
![Page 9: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/9.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(3)
アプリケーションへの組込みライブラリとして活用可能
実はバックエンドでGroongaが動いていることも
![Page 10: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/10.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaとパッケージ
Debian
Ubuntu
CentOS
Fedora
Windows
![Page 11: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/11.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Debian
Debian 7.4 (wheezy)
Debian 8 (jessie)
Debian unstable (sid)
![Page 12: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/12.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Ubuntu(1)
Ubuntu 12.04 (Precise)
Ubuntu 12.10 (Quantal)明日でサポート終了 4.0.1まで
Ubuntu 13.04 (Raring)すでにサポート終了 3.1.2まで
![Page 13: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/13.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Ubuntu(2)
Ubuntu 13.10 (Saucy)7月にサポート終了
Ubuntu 14.04 (Trusty)今月からサポート開始
![Page 14: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/14.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on CentOS
CentOS 5/6中国語のトークナイザーは未サポート
CentOS 7?まだrcベースらしいのでしばらく先
![Page 15: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/15.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Fedora(1)
Fedora 20中国語のトークナイザーは未サポート
Groonga公式とFedora公式に違いはない
Fedoraでリリースするのはちょっと遅れる(2-3週)
![Page 16: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/16.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Fedora(2)
リリース短縮にはKarmaが必要
![Page 17: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/17.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
https://admin.fedoraproject.org/updates/
![Page 18: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/18.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(1)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
https://admin.fedoraproject.org/updates/
![Page 19: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/19.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(2)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
![Page 20: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/20.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(2)
Testingって?
![Page 21: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/21.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(3)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
![Page 22: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/22.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(4)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
![Page 23: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/23.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(4)
works for meコメントって?これを送信するとKarma +1
![Page 24: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/24.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaの特長(1)
導入しやすいプラグイン形式
他のストレージエンジンとの連携ラッパーモード
![Page 25: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/25.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaの特長(2)
データ更新が多くても検索性能が良い
LIKEからの置き換えも比較的容易
![Page 26: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/26.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaとパッケージ
Debian
Ubuntu
CentOS
Fedora
Windows
![Page 27: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/27.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on Debian
MySQL 5.5系Debian 7.4 (wheezy)
Debian 8 (jessie)
Debian unstable (sid)
![Page 28: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/28.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on Ubuntu(1)
MySQL 5.5系Ubuntu 12.04 (Precise)
Ubuntu 12.10 (Quantal)
明日でサポート終了 4.01まで
Ubuntu 13.04 (Raring)
すでにサポート終了 3.12まで
![Page 29: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/29.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on Ubuntu(2)
MySQL 5.5系Ubuntu 13.10 (Saucy)
7月にサポート終了
Ubuntu 14.04 (Trusty)
今月からサポート開始
![Page 30: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/30.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS 5
CentOS 5以前はMySQLが古すぎたので、MySQL 5.6対応パッケージを提供
MySQL 5.5(SCL)対応パッケージに移行
![Page 31: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/31.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS 6
CentOS 6MySQL 5.1しか使えないというのは古い情報です!
MySQL 5.5対応(SCL)パッケージに移行
![Page 32: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/32.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS
CentOS 5やCentOS 6でMySQL 5.6wingリポジトリをお勧めしています
http://wing-repo.net/
![Page 33: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/33.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on Fedora
Fedora 20MySQL 5.5 & MariaDB 5.5対応
Fedora公式リポジトリでは未リリースMroonga含めてインストールしたいならGroongaリポジトリを登録する
![Page 34: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/34.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
環境構築してみよう
Groongaのインストール
Mroongaのインストール
![Page 35: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/35.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(1)
groongaちょっとお試しで使うならコレ
コマンドラインで使うだけ
いろいろ指定すればサーバーとしても利用可
![Page 36: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/36.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(2)
groonga-server-httpサーバー立てるならコレ
groonga-server-gqtp特に理由がなければスルー
![Page 37: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/37.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(3)
groonga-httpd不満がでてきたらコレ
POSTしたいならコレ一択
![Page 38: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/38.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(3)
groonga-httpd不満がでてきたらコレ
POSTしたいならコレ一択
![Page 39: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/39.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(1)
⏳Groongaをインストールしてみましょう
groonga-httpd
http://groonga.org/ja/docs/install.html
![Page 40: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/40.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(2)
⏳トークナイザーやノーマライザーをインストールしてみましょう
groonga-tokenizer-mecab
groonga-normalizer-mysql
http://groonga.org/ja/docs/install.html
![Page 41: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/41.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(3)
⏳Groongaが起動しているか確認しましょう
% curl http://localhost:10041/d/status
![Page 42: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/42.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(4)
⏳Groongaが起動していない場合は起動しましょう
% sudo service groonga-httpd start
![Page 43: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/43.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(1)
⏳Mroongaをインストールしてみましょう
http://mroonga.org/ja/docs/install.html
![Page 44: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/44.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(2)
⏳Mroongaが使えるか確認しましょう
mysql> show engines;
![Page 45: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/45.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(3)
⏳インストールされているとどうなる?
mysql> SELECT * FROM mysql.plugin;+---------+---------------+| name | dl |+---------+---------------+| mroonga | ha_mroonga.so |+---------+---------------+1 row in set (0.00 sec)
![Page 46: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/46.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(4)
⏳インストールされているとどうなる?
mysql> SELECT * FROM mysql.func;+--------------------+-----+---------------+----------+| name | ret | dl | type |+--------------------+-----+---------------+----------+| last_insert_grn_id | 2 | ha_mroonga.so | function || mroonga_snippet | 0 | ha_mroonga.so | function || mroonga_command | 0 | ha_mroonga.so | function || mroonga_escape | 0 | ha_mroonga.so | function |+--------------------+-----+---------------+----------+4 rows in set (0.00 sec)
![Page 47: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/47.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の演習の題材
駅データ.jphttp://www.ekidata.jp/
![Page 48: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/48.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
題材のダウンロード
⏳以下から今回使うサンプルをダウンロードしてください
http://packages.groonga.org/tmp/groonga-meetup-20140429.tar.gz
![Page 49: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/49.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga編
よく使うgroongaコマンドtable_create/table_remove
column_create/column_remove
select/load/delete/dump
![Page 50: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/50.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
テーブルのキーの話
いろいろあるけどTABLE_PAT_KEY
長過ぎるキーは禁物(ShortText)
table_create Company TABLE_PAT_KEY UInt32
![Page 51: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/51.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを追加/更新しよう
多才なloadコマンド追加も更新もこれ一つで
![Page 52: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/52.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
失敗時にわかりやすいロードの仕方(1)
こうやってロードできるけど
load --table Company[["_key", "column1", "column2", ...["key1", "data1", "data2", ...
![Page 53: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/53.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
失敗時にわかりやすいロードの仕方(2)
key:valueのペアがわかりやすい
load --table Company[{"_key": "key1", "column1":"data1", "column2":", ...
![Page 54: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/54.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
失敗時にわかりやすいロードの仕方(3)
⏳実際に試してみましょう
% 0001-load/load-fail.sh% 0001-load/load-succeed.sh
[[0,1398668413.7959,0.00316190719604492],3]
![Page 55: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/55.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データをより安全にロードする(3)
⏳実際に試してみましょう⚠_key:3のstatusが抜けている
% ./0001-load/load-fail.sh% ./0001-load/load-succeed.sh
[[0,1398668413.7959,0.00316190719604492],3]
![Page 56: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/56.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを更新してみよう
⏳実際に試してみましょう_key:3のstatusを更新します
% ./0002-update/update-status.sh
![Page 57: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/57.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを検索してみよう
⏳実際に試してみましょう⚠1件もヒットしない
% ./0003-search/search-name.sh
![Page 58: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/58.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが必要(1)
⏳インデックスを追加してみましょう
% ./0003-search/add-index.sh
![Page 59: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/59.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが必要(2)
⏳COLUMN_INDEXを指定するのがポイントです
table_remove Lexicontable_create Lexicon TABLE_PAT_KEY ShortText --default_tokenizer \ TokenBigram --normalizer NormalizerAutocolumn_create Lexicon name_index COLUMN_INDEX|WITH_SECTION|WITH_POSITION Users namecolumn_create Lexicon sect_index COLUMN_INDEX|WITH_SECTION|WITH_POSITION Users sect
![Page 60: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/60.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが必要(3)
⏳再度検索してみましょう
% ./0003-search/search-name.sh
![Page 61: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/61.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが必要(4)
⏳インデックスを覗いてみる
% ./0003-search/dump-lexicon.sh
![Page 62: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/62.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(1)
⏳キーをもとに削除する
delete Company 2
% 0004-delete/delete-by-key.sh
![Page 63: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/63.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(2)
⏳nameカラムの値をもとに削除する
delete Company --filter "name == 'JR北海道'"
% 0004-delete/delete-by-name.sh
![Page 64: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/64.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(3)
⏳statusの値をもとに削除する
delete Company --filter 'status > 0'
% 0004-delete/delete-by-status.sh
![Page 65: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/65.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTP経由でのリクエストの基本
コマンド名 + キー=値のペア
http://localhost:10041/d/コマンド名?キー1=値1&キー2=値2....
![Page 66: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/66.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTP経由でテーブルを作成する(1)
⏳table_createコマンドを使ってアクセス
% ./0005-create-table/create-table.sh
curl 'http://localhost:10041/d/table_create?name=Company&type=TABLE_PAT_KEY&key_type=UInt32'
![Page 67: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/67.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTP経由でカラムを作成する(1)
⏳column_createコマンドを使ってアクセス
% ./0006-create-column/create-column.sh
curl 'http://localhost:10041/d/column_create?table=Company&name=full_name&flags=COLUMN_SCALAR&type=ShortText'
![Page 68: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/68.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
POSTでデータを更新する(1)
⏳POSTでデータをロードしてみましょう
% ./0007-post-data/post-data.sh
![Page 69: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/69.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTPでデータを検索する(1)
⏳HTTP経由で検索してみましょう
% ./0008-search-http/search-http.sh
![Page 70: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/70.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
管理画面を触ってみよう
⏳ブラウザで次のURLにアクセスしてください
http://localhost:10041/
![Page 71: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/71.jpg)
Mroonga編
![Page 72: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/72.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
モードの違いをおさえる(1)
ラッパーモードデータは他のストレージエンジン
全文検索をMroongaでがんばる
トランザクションでロールバックすると不整合発生
チューニングはMySQLの範囲で
![Page 73: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/73.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
モードの違いをおさえる(2)
ストレージモード全部Mroongaでがんばる
トランザクション何それ?
![Page 74: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/74.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
ストレージモード
ENGINE=mroongaと覚えましょう
![Page 75: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/75.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
ラッパーモード
コメントでエンジンを指定
ENGINE=mroonga COMMENT='engine "innodb"'
![Page 76: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/76.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
パーサーの指定
コメントでパーサーを指定
Groongaの用語だとトークナイザー
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab"'
![Page 77: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/77.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
ノーマライザーの指定
コメントでノーマライザーを指定
FULLTEXT INDEX (content) COMMENT 'normalizer "NormalizerAuto"'
![Page 78: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/78.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
パーサー&ノーマライザーの指定
両方指定したいときは,で区切る
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab", normalizer "NormalizerAuto"'
![Page 79: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/79.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
MATCH AGAINSTとBOOLEAN MODE
QUERY EXPANSION MODEMySQLにおまかせの類似文書検索
BOOLEAN MODE明示的に検索を制御
![Page 80: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/80.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
位置情報検索
⏳Qiitaの位置情報検索の記事を試してみよう
http://qiita.com/groonga/items/7abca5004d2ae386d388
![Page 81: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/81.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
感謝
WEICさん会場提供ありがとうございます!
![Page 82: Groonga meetup #2 - Rabbit Slide Show...2014/04/29 · Groonga meetup #2 Powered by Rabbit 2.1.2 開催の目的(1) 「全文検索をし たい人の最初の 一歩を踏みだし](https://reader035.fdocument.pub/reader035/viewer/2022071113/5fea946d6105e120297d79e7/html5/thumbnails/82.jpg)
Groonga meetup #2 Powered by Rabbit 2.1.2
おわり
Any Questions?