Rabbit Slide Show

Droongaのはじめかた

2014-03-29

Description

Droongaはまだ新しいプロダクトなのであまり情報がありません。今回はそんな Droongaを使いはじめる方法を紹介します。

Text

Page: 1

Droongaの
はじめかた
須藤功平
クリアコード
全文検索エンジンGroonga勉強会@札幌 2014/03/29
2014/03/29
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 2

この勉強会とこの話の関連
勉強会
Groongaの利用事例を募集
この話
Groongaを使ったプロダクト
Droongaの話
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 3

お知らせ1
4.0.1リリース!
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 4

4.0.1の新機能1
adjuster
スコアブースト機能
使用例: 運営のオススメを上に表示
重み付きベクター
レコード毎にn個の重みを設定
adjusterと連携するとよい
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 5

4.0.1の新機能2
データベース肥大化抑制
Milkodeユーザーにも効果大なはず
注意: データベースの再作成が必要
データベースの後方互換性あり
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 6

お知らせ2
1.0.1リリース!
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 7

1.0.1の新機能
adjuster対応
重み付きベクター対応
ユーザー視点の使い勝手向上
grn2drn-schema, droonga-
send, ...
今月は開発者としてよりもユーザーとして触っていたから
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 8

今日の目標
1人以上
Droongaデビュー
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 9

話すこと
Droonga
未経験者向け
ヒント
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 10

流れ
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 11

Droongaとはなにか
Distributed Groonga
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 12

Distributed?
スケールアウト
可能
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 13

Droonga
スケールアウト
可能な
Groonga
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 14

Groongaが透けて見える
スケールアウト
可能な
Groonga
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 15

GroongaとDroonga
一部はGroonga != Droonga
一部はGroonga == Droonga
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 16

Groonga != Droonga
APIは違う
DroongaにGroonga互換レイヤーあり
構成は違う
1台でDroongaを使っても嬉しくない
性能特性は違う
1台で捌ける量→Groongaの方が速い
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 17

Groonga == Droonga
クエリーの書き方は同じ
スキーマの考え方は同じ
検索機能はだいたい同じ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 18

Droongaをはじめるために
教養として
Groongaを
押さえて
おくべき!
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 19

Groongaの使い方
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 20

なぜまずGroongaか
Groongaはお手軽
1台のマシンで動く
設定ファイルなしで動く
コマンドラインで動く
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 21

Groongaを使う流れ
初心者向けの簡易版
1. スキーマを作る
2. インデックスを作る
3. データを入れる
4. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 22

スキーマを作る
検索したいものを1つ決める
例: たいやき屋検索ならたいやき屋
検索したいものの集まりを
テーブルにする
例: TaiyakiShopsテーブル
付加情報をカラムにする
例: 店舗名、場所、メニューなど
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 23

スキーマ例
table_create TaiyakiShops \
TABLE_HASH_KEY ShortText
# 店舗名
column_create TaiyakiShops name \
COLUMN_SCALAR ShortText
# 場所
column_create TaiyakiShops location \
COLUMN_SCALAR WGS84GeoPoint
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 24

Groongaを使う流れ: 2
1. スキーマを作る
2. インデックスを作る
3. データを入れる
4. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 25

インデックスを作る
全文検索対象を決める
例: 店舗名
トークンの集合を格納する
テーブルを作る
トークン: 最小検索単位
↑にインデックスカラムを作る
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 26

インデックス例
# トークン用テーブル
# 初心者は常にこれでOK
table_create Tokens \
TABLE_PAT_KEY ShortText \
--default_tokenizer TokenBigram \
--normalizer NormalizerAuto
# インデックスカラム
column_create Tokens taiyaki_index \
COLUMN_INDEX|WITH_POSITION \
TaiyakiShops name
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 27

Groongaを使う流れ: 3
1. スキーマを作る
2. インデックスを作る
3. データを入れる
4. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 28

データを入れる
フォーマットはJSON
GroongaのJSONパーサーは緩い
多少壊れたJSONも受け付ける
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 29

データ例
load --table TaiyakiShops
[
{
"_key": "sapporo-yanagiya",
"name": "札幌の柳屋",
"location": "43.11629x141.34855"
}
]
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 30

Groongaを使う流れ: 4
1. スキーマを作る
2. インデックスを作る
3. データを入れる
4. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 31

検索する
全文検索対象を指定する
検索キーワードを指定する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 32

検索例
select TaiyakiShops \
--match_columns name \
--query "札幌"
# [[...], ← レスポンスヘッダー
# [[[1], ← ヒット件数
#
↓ 出力内容のメタデータ
#
[["_id","UInt32"],...],
#
↓ マッチしたレコード
#
[1,"sapporo-yanagiya","...","札幌の柳屋"]]]]
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 33

Groongaを使う流れの再確認
1. スキーマを作る
2. インデックスを作る
3. データを入れる
4. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 34

流れ3
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 35

Droongaを使う流れ
1. クラスターを作る ← New
2. スキーマを作る
3. インデックスを作る
4. データを入れる
5. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 36

クラスターを作る
大事だけど時間がないので
省略!
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 37

流れ4
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 38

Droongaの構成
http://droonga.org/overview/
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 39

まとめ1
Droonga
スケールアウト可能なGroonga
Groongaと同じことがいろいろある
Groongaの理解が役立つ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 40

まとめ2
Groongaの使い方
a. スキーマを作る
b. インデックスを作る
c. データを入れる
d. 検索する
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 41

まとめ3
Droongaの使い方
a. クラスターを作る
b. 以下、Groongaと同じ
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 42

まとめ4
Droongaの構成
n個のGroongaで
大きなGroongaを構成
Droonga=大きなGroonga
Droongaの はじめかた
Powered by Rabbit 2.1.2

Page: 43

今日の目標の確認
1人以上
Droongaデビュー
を見据えてGroongaデビュー
Droongaの はじめかた
Powered by Rabbit 2.1.2

Other slides

Mroonga!
2015-10-30