SlideShare a Scribd company logo
1 of 82
Download to read offline
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga
meetup #2
林健太郎 クリアコード
Groonga meetup
2014/04/29
Groonga meetup #2 Powered by Rabbit 2.1.2
はじめに
開催の目的
今回の内容
Any Questions?
Groonga meetup #2 Powered by Rabbit 2.1.2
開催の目的(1)
「全文検索をし
たい人の最初の
一歩を踏みだし
やすくしよう」
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の内容(1)
全文検索事始め
GroongaやMroongaの特長の紹介
最新版の導入について
GroongaやMroongaの環境構築
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の内容(2)
題材の説明と実際の演習(随時)
Any Questions?
Groonga meetup #2 Powered by Rabbit 2.1.2
全文検索事始め
既存のシステムに全文検索導入
したい
手持ちのメタ情報を効率良く検
索したい
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(1)
全文検索と即時更新
参照ロックフリー
更新しつつ検索OK
カラムストアを採用
集計クエリを高速に処理可能
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(2)
豊富なトークナイザー
検索漏れないことを重視しますか?
検索精度を重視しますか?
位置情報検索のサポート
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaの特長(3)
アプリケーションへの組込み
ライブラリとして活用可能
実はバックエンドでGroongaが動い
ていることも
Groonga meetup #2 Powered by Rabbit 2.1.2
Groongaとパッケージ
Debian
Ubuntu
CentOS
Fedora
Windows
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Debian
Debian 7.4 (wheezy)
Debian 8 (jessie)
Debian unstable (sid)
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まで
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Ubuntu(2)
Ubuntu 13.10 (Saucy)
7月にサポート終了
Ubuntu 14.04 (Trusty)
今月からサポート開始
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on CentOS
CentOS 5/6
中国語のトークナイザーは未サポー
ト
CentOS 7?
まだrcベースらしいのでしばらく先
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Fedora(1)
Fedora 20
中国語のトークナイザーは未サポー
ト
Groonga公式とFedora公式に違いは
ない
Fedoraでリリースするのはちょっと
遅れる(2-3週)
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga on Fedora(2)
リリース短縮にはKarmaが必要
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
https://admin.fedoraproject.org/updates/
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(1)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
https://admin.fedoraproject.org/updates/
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(2)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(2)
Testingって?
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(3)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(4)
Bohdiにログイン
メニューのTestingを選択
Groongaパッケージを選択
works for meコメントを追加
Groonga meetup #2 Powered by Rabbit 2.1.2
FedoraでKarmaを稼ぐ(4)
works for meコメントって?
これを送信するとKarma +1
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaの特長(1)
導入しやすいプラグイン形式
他のストレージエンジンとの連
携
ラッパーモード
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaの特長(2)
データ更新が多くても検索性能
が良い
LIKEからの置き換えも比較的容
易
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroongaとパッケージ
Debian
Ubuntu
CentOS
Fedora
Windows
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)
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まで
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)
今月からサポート開始
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS 5
CentOS 5
以前はMySQLが古すぎたので、
MySQL 5.6対応パッケージを提供
MySQL 5.5(SCL)対応パッケージに移
行
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS 6
CentOS 6
MySQL 5.1しか使えないというのは
古い情報です!
MySQL 5.5対応(SCL)パッケージに移
行
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on CentOS
CentOS 5やCentOS 6でMySQL 5.6
wingリポジトリをお勧めしています
http://wing-repo.net/
Groonga meetup #2 Powered by Rabbit 2.1.2
Mroonga on Fedora
Fedora 20
MySQL 5.5 & MariaDB 5.5対応
Fedora公式リポジトリでは未リリー
ス
Mroonga含めてインストールしたいなら
Groongaリポジトリを登録する
Groonga meetup #2 Powered by Rabbit 2.1.2
環境構築してみよう
Groongaのインストール
Mroongaのインストール
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(1)
groonga
ちょっとお試しで使うならコレ
コマンドラインで使うだけ
いろいろ指定すればサーバーとして
も利用可
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(2)
groonga-server-http
サーバー立てるならコレ
groonga-server-gqtp
特に理由がなければスルー
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(3)
groonga-httpd
不満がでてきたらコレ
POSTしたいならコレ一択
Groonga meetup #2 Powered by Rabbit 2.1.2
どれをインストールしたらいい?(3)
groonga-httpd
不満がでてきたらコレ
POSTしたいならコレ一択
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(1)
⏳Groongaをインストールしてみましょう
groonga-httpd
http://groonga.org/ja/docs/install.html
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
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(3)
⏳Groongaが起動しているか確認しましょう
% curl http://localhost:10041/d/status
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Groonga(4)
⏳Groongaが起動していない場合は起動しましょう
% sudo service groonga-httpd start
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(1)
⏳Mroongaをインストールしてみましょう
http://mroonga.org/ja/docs/install.html
Groonga meetup #2 Powered by Rabbit 2.1.2
Install Mroonga(2)
⏳Mroongaが使えるか確認しましょう
mysql> show engines;
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)
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)
Groonga meetup #2 Powered by Rabbit 2.1.2
今回の演習の題材
駅データ.jp
http://www.ekidata.jp/
Groonga meetup #2 Powered by Rabbit 2.1.2
題材のダウンロード
⏳以下から今回使うサンプルをダウンロードしてくだ
さい
http://packages.groonga.org/tmp/groonga-meetup-20140429.tar.gz
Groonga meetup #2 Powered by Rabbit 2.1.2
Groonga編
よく使うgroongaコマンド
table_create/table_remove
column_create/column_remove
select/load/delete/dump
Groonga meetup #2 Powered by Rabbit 2.1.2
テーブルのキーの話
いろいろあるけどTABLE_PAT_KEY
長過ぎるキーは禁物(ShortText)
table_create Company TABLE_PAT_KEY UInt32
Groonga meetup #2 Powered by Rabbit 2.1.2
データを追加/更新しよう
多才なloadコマンド
追加も更新もこれ一つで
Groonga meetup #2 Powered by Rabbit 2.1.2
失敗時にわかりやすいロード
の仕方(1)
こうやってロードできるけど
load --table Company
[
["_key", "column1", "column2", ...
["key1", "data1", "data2", ...
Groonga meetup #2 Powered by Rabbit 2.1.2
失敗時にわかりやすいロード
の仕方(2)
key:valueのペアがわかりやすい
load --table Company
[
{"_key": "key1", "column1":"data1", "column2":", ...
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]
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]
Groonga meetup #2 Powered by Rabbit 2.1.2
データを更新してみよう
⏳実際に試してみましょう
_key:3のstatusを更新します
% ./0002-update/update-status.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
データを検索してみよう
⏳実際に試してみましょう
⚠1件もヒットしない
% ./0003-search/search-name.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが
必要(1)
⏳インデックスを追加してみまし
ょう
% ./0003-search/add-index.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが
必要(2)
⏳COLUMN_INDEXを指定するのがポ
イントです
table_remove Lexicon
table_create Lexicon TABLE_PAT_KEY ShortText --default_tokenizer 
TokenBigram --normalizer NormalizerAuto
column_create Lexicon name_index COLUMN_INDEX|WITH_SECTION|WITH_POSITION Users name
column_create Lexicon sect_index COLUMN_INDEX|WITH_SECTION|WITH_POSITION Users sect
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが
必要(3)
⏳再度検索してみましょう
% ./0003-search/search-name.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
検索するにはインデックスが
必要(4)
⏳インデックスを覗いてみる
% ./0003-search/dump-lexicon.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(1)
⏳キーをもとに削除する
delete Company 2
% 0004-delete/delete-by-key.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(2)
⏳nameカラムの値をもとに削除す
る
delete Company --filter "name == 'JR北海道'"
% 0004-delete/delete-by-name.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
データを削除してみよう(3)
⏳statusの値をもとに削除する
delete Company --filter 'status > 0'
% 0004-delete/delete-by-status.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTP経由でのリクエストの基
本
コマンド名 + キー=値のペア
http://localhost:10041/d/コマンド名?キー1=値1&キー2=値2....
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'
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'
Groonga meetup #2 Powered by Rabbit 2.1.2
POSTでデータを更新する(1)
⏳POSTでデータをロードしてみま
しょう
% ./0007-post-data/post-data.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
HTTPでデータを検索する(1)
⏳HTTP経由で検索してみましょう
% ./0008-search-http/search-http.sh
Groonga meetup #2 Powered by Rabbit 2.1.2
管理画面を触ってみよう
⏳ブラウザで次のURLにアクセスし
てください
http://localhost:10041/
Mroonga
編
Groonga meetup #2 Powered by Rabbit 2.1.2
モードの違いをおさえる(1)
ラッパーモード
データは他のストレージエンジン
全文検索をMroongaでがんばる
トランザクションでロールバックすると不
整合発生
チューニングはMySQLの範囲で
Groonga meetup #2 Powered by Rabbit 2.1.2
モードの違いをおさえる(2)
ストレージモード
全部Mroongaでがんばる
トランザクション何それ?
Groonga meetup #2 Powered by Rabbit 2.1.2
ストレージモード
ENGINE=mroongaと覚えましょう
Groonga meetup #2 Powered by Rabbit 2.1.2
ラッパーモード
コメントでエンジンを指定
ENGINE=mroonga COMMENT='engine "innodb"'
Groonga meetup #2 Powered by Rabbit 2.1.2
パーサーの指定
コメントでパーサーを指定
Groongaの用語だとトークナイザ
ー
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab"'
Groonga meetup #2 Powered by Rabbit 2.1.2
ノーマライザーの指定
コメントでノーマライザーを指
定
FULLTEXT INDEX (content) COMMENT 'normalizer "NormalizerAuto"'
Groonga meetup #2 Powered by Rabbit 2.1.2
パーサー&ノーマライザーの
指定
両方指定したいときは,で区切る
FULLTEXT INDEX (content) COMMENT 'parser "TokenMecab", normalizer "NormalizerAuto"'
Groonga meetup #2 Powered by Rabbit 2.1.2
MATCH AGAINSTとBOOLEAN
MODE
QUERY EXPANSION MODE
MySQLにおまかせの類似文書検索
BOOLEAN MODE
明示的に検索を制御
Groonga meetup #2 Powered by Rabbit 2.1.2
位置情報検索
⏳Qiitaの位置情報検索の記事を試してみよう
http://qiita.com/groonga/items/7abca5004d2ae386d388
Groonga meetup #2 Powered by Rabbit 2.1.2
感謝
WEICさん
会場提供ありがとうございま
す!
Groonga meetup #2 Powered by Rabbit 2.1.2
おわり
Any Questions?

More Related Content

What's hot

Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewallM Hagiwara
 
Droonga移行後の世界
Droonga移行後の世界Droonga移行後の世界
Droonga移行後の世界Kouhei Sutou
 
2019 jetson azure_hands-on
2019 jetson azure_hands-on2019 jetson azure_hands-on
2019 jetson azure_hands-onAya Owosekun
 
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Recruit Technologies
 
Introduction to Ostinato , network packet crafting and generator.
Introduction to Ostinato, network packet crafting and generator.Introduction to Ostinato, network packet crafting and generator.
Introduction to Ostinato , network packet crafting and generator.Kentaro Ebisawa
 
ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjpダークネットのはなし #ssmjp
ダークネットのはなし #ssmjpsonickun
 
Rubyのエンコーディング
RubyのエンコーディングRubyのエンコーディング
RubyのエンコーディングMasahiro Tomita
 
本当はこわいエンコーディングの話
本当はこわいエンコーディングの話本当はこわいエンコーディングの話
本当はこわいエンコーディングの話Masahiro Tomita
 
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...GMO GlobalSign Holdings K.K.
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred NetworksPreferred Networks
 
20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみよう20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみようMidori Oge
 
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI toolNaoto Gohko
 
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐBug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐNetwalker lab kapper
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgKentaro Ebisawa
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 
Webrtc bootcamp handson
Webrtc bootcamp handsonWebrtc bootcamp handson
Webrtc bootcamp handsonmganeko
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化kazuhcurry
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as CodeTakuhiro Yoshida
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 

What's hot (19)

Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
Droonga移行後の世界
Droonga移行後の世界Droonga移行後の世界
Droonga移行後の世界
 
2019 jetson azure_hands-on
2019 jetson azure_hands-on2019 jetson azure_hands-on
2019 jetson azure_hands-on
 
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
 
Introduction to Ostinato , network packet crafting and generator.
Introduction to Ostinato, network packet crafting and generator.Introduction to Ostinato, network packet crafting and generator.
Introduction to Ostinato , network packet crafting and generator.
 
ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjpダークネットのはなし #ssmjp
ダークネットのはなし #ssmjp
 
Rubyのエンコーディング
RubyのエンコーディングRubyのエンコーディング
Rubyのエンコーディング
 
本当はこわいエンコーディングの話
本当はこわいエンコーディングの話本当はこわいエンコーディングの話
本当はこわいエンコーディングの話
 
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...Windows Server+Photon Server環境でもFluentd+Elasticsearch+Kibanaを活用して各種情報を可視化する...
Windows Server+Photon Server環境でも Fluentd+Elasticsearch+Kibanaを活用して 各種情報を可視化する...
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
 
20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみよう20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみよう
 
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
2015 0807 ConoHa I am the bone of the OpenStack API CLI tool
 
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐBug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfg
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
Webrtc bootcamp handson
Webrtc bootcamp handsonWebrtc bootcamp handson
Webrtc bootcamp handson
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as Code
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 

Similar to Groonga Meetup 2014/04/29

Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29kenhys
 
Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活Hiroshi Yuki
 
Groongaを支える取り組み
Groongaを支える取り組みGroongaを支える取り組み
Groongaを支える取り組みkenhys
 
Droongaのはじめかた
DroongaのはじめかたDroongaのはじめかた
DroongaのはじめかたKouhei Sutou
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートSatoshi Kume
 
Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Kouhei Sutou
 
MroongaとPGroonga
MroongaとPGroongaMroongaとPGroonga
MroongaとPGroongaKouhei Sutou
 
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込みKouhei Sutou
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstepsmokey monkey
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりYuya Rin
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Uehara Junji
 
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索Kouhei Sutou
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築Kei Nakazawa
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験yoku0825
 
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフRubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフNarihiro Nakamura
 

Similar to Groonga Meetup 2014/04/29 (20)

Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29Mroonga Meetup 2014/06/29
Mroonga Meetup 2014/06/29
 
Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活Droonga - 分散Groongaで快適レプリケーション生活
Droonga - 分散Groongaで快適レプリケーション生活
 
Groongaを支える取り組み
Groongaを支える取り組みGroongaを支える取り組み
Groongaを支える取り組み
 
Groonga族2013
Groonga族2013Groonga族2013
Groonga族2013
 
Droongaのはじめかた
DroongaのはじめかたDroongaのはじめかた
Droongaのはじめかた
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
 
Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!
 
HerokuでGroonga
HerokuでGroongaHerokuでGroonga
HerokuでGroonga
 
MroongaとPGroonga
MroongaとPGroongaMroongaとPGroonga
MroongaとPGroonga
 
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
Groonga族2014
Groonga族2014Groonga族2014
Groonga族2014
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
 
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
 
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフRubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフ
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 

More from kenhys

How to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebianHow to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebiankenhys
 
DebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするにはDebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするにはkenhys
 
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはdebexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはkenhys
 
Debianのインフラを借りるには
Debianのインフラを借りるにはDebianのインフラを借りるには
Debianのインフラを借りるにはkenhys
 
DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話kenhys
 
# groonga開発チームの紹介
# groonga開発チームの紹介# groonga開発チームの紹介
# groonga開発チームの紹介kenhys
 
Shibuyalisp6lt
Shibuyalisp6ltShibuyalisp6lt
Shibuyalisp6ltkenhys
 

More from kenhys (7)

How to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebianHow to use SOAP interface of debbugs #tokyodebian
How to use SOAP interface of debbugs #tokyodebian
 
DebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするにはDebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするには
 
debexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするにはdebexpo(mentors.d.n)をハックするには
debexpo(mentors.d.n)をハックするには
 
Debianのインフラを借りるには
Debianのインフラを借りるにはDebianのインフラを借りるには
Debianのインフラを借りるには
 
DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話
 
# groonga開発チームの紹介
# groonga開発チームの紹介# groonga開発チームの紹介
# groonga開発チームの紹介
 
Shibuyalisp6lt
Shibuyalisp6ltShibuyalisp6lt
Shibuyalisp6lt
 

Groonga Meetup 2014/04/29

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