Your SlideShare is downloading. ×
0
Droongaの はじめかた Powered by Rabbit 2.1.2
Droongaの
はじめかた
須藤功平 クリアコード
全文検索エンジンGroonga勉強会@札幌 2014/03/29
2014/03/29
Droongaの はじめかた Powered by Rabbit 2.1.2
この勉強会とこの話の関連
勉強会
Groongaの利用事例を募集
この話
Groongaを使ったプロダクト
Droongaの話
Droongaの はじめかた Powered by Rabbit 2.1.2
お知らせ1
4.0.1リリース!
Droongaの はじめかた Powered by Rabbit 2.1.2
4.0.1の新機能1
adjuster
スコアブースト機能
使用例: 運営のオススメを上に表示
重み付きベクター
レコード毎にn個の重みを設定
adjusterと連携...
Droongaの はじめかた Powered by Rabbit 2.1.2
4.0.1の新機能2
データベース肥大化抑制
Milkodeユーザーにも効果大なはず
注意: データベースの再作成が必要
データベースの後方互換性あり
Droongaの はじめかた Powered by Rabbit 2.1.2
お知らせ2
1.0.1リリース!
Droongaの はじめかた Powered by Rabbit 2.1.2
1.0.1の新機能
adjuster対応
重み付きベクター対応
ユーザー視点の使い勝手向上
grn2drn-schema, droonga-
send, ...
今月...
Droongaの はじめかた Powered by Rabbit 2.1.2
今日の目標
1人以上
Droongaデビュー
Droongaの はじめかた Powered by Rabbit 2.1.2
話すこと
Droonga
未経験者向け
ヒント
Droongaの はじめかた Powered by Rabbit 2.1.2
流れ
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた Powered by Rabbit 2.1.2
Droongaとはなにか
Distributed Groonga
Droongaの はじめかた Powered by Rabbit 2.1.2
Distributed?
スケールアウト
可能
Droongaの はじめかた Powered by Rabbit 2.1.2
Droonga
スケールアウト
可能な
Groonga
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaが透けて見える
スケールアウト
可能な
Groonga
Droongaの はじめかた Powered by Rabbit 2.1.2
GroongaとDroonga
一部はGroonga != Droonga
一部はGroonga == Droonga
Droongaの はじめかた Powered by Rabbit 2.1.2
Groonga != Droonga
APIは違う
DroongaにGroonga互換レイヤーあり
構成は違う
1台でDroongaを使っても嬉しくない
性能特性は違...
Droongaの はじめかた Powered by Rabbit 2.1.2
Groonga == Droonga
クエリーの書き方は同じ
スキーマの考え方は同じ
検索機能はだいたい同じ
Droongaの はじめかた Powered by Rabbit 2.1.2
Droongaをはじめるために
教養として
Groongaを
押さえて
おくべき!
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaの使い方
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた Powered by Rabbit 2.1.2
なぜまずGroongaか
Groongaはお手軽
1台のマシンで動く
設定ファイルなしで動く
コマンドラインで動く
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaを使う流れ
初心者向けの簡易版
スキーマを作る1.
インデックスを作る2.
データを入れる3.
検索する4.
Droongaの はじめかた Powered by Rabbit 2.1.2
スキーマを作る
検索したいものを1つ決める
例: たいやき屋検索ならたいやき屋
検索したいものの集まりを
テーブルにする
例: TaiyakiShopsテーブル
付加...
Droongaの はじめかた Powered by Rabbit 2.1.2
スキーマ例
table_create TaiyakiShops 
TABLE_HASH_KEY ShortText
# 店舗名
column_create Taiya...
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaを使う流れ: 2
スキーマを作る1.
インデックスを作る2.
データを入れる3.
検索する4.
Droongaの はじめかた Powered by Rabbit 2.1.2
インデックスを作る
全文検索対象を決める
例: 店舗名
トークンの集合を格納する
テーブルを作る
トークン: 最小検索単位
↑にインデックスカラムを作る
Droongaの はじめかた Powered by Rabbit 2.1.2
インデックス例
# トークン用テーブル
# 初心者は常にこれでOK
table_create Tokens 
TABLE_PAT_KEY ShortText 
--d...
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaを使う流れ: 3
スキーマを作る1.
インデックスを作る2.
データを入れる3.
検索する4.
Droongaの はじめかた Powered by Rabbit 2.1.2
データを入れる
フォーマットはJSON
GroongaのJSONパーサーは緩い
多少壊れたJSONも受け付ける
Droongaの はじめかた Powered by Rabbit 2.1.2
データ例
load --table TaiyakiShops
[
{
"_key": "sapporo-yanagiya",
"name": "札幌の柳屋",
"lo...
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaを使う流れ: 4
スキーマを作る1.
インデックスを作る2.
データを入れる3.
検索する4.
Droongaの はじめかた Powered by Rabbit 2.1.2
検索する
全文検索対象を指定する
検索キーワードを指定する
Droongaの はじめかた Powered by Rabbit 2.1.2
検索例
select TaiyakiShops 
--match_columns name 
--query "札幌"
# [[...], ← レスポンスヘッダー
#...
Droongaの はじめかた Powered by Rabbit 2.1.2
Groongaを使う流れの再確認
スキーマを作る1.
インデックスを作る2.
データを入れる3.
検索する4.
Droongaの はじめかた Powered by Rabbit 2.1.2
流れ3
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた Powered by Rabbit 2.1.2
Droongaを使う流れ
クラスターを作る ← New1.
スキーマを作る2.
インデックスを作る3.
データを入れる4.
検索する5.
Droongaの はじめかた Powered by Rabbit 2.1.2
クラスターを作る
大事だけど時間がないので
省略!
Droongaの はじめかた Powered by Rabbit 2.1.2
流れ4
Droongaとはなにか
Groongaの使い方
↑とDroongaの使い方の違い
Droongaの考え方のイメージ
Droongaの はじめかた Powered by Rabbit 2.1.2
Droongaの構成
http://droonga.org/overview/
Droongaの はじめかた Powered by Rabbit 2.1.2
まとめ1
Droonga
スケールアウト可能なGroonga
Groongaと同じことがいろいろある
Groongaの理解が役立つ
Droongaの はじめかた Powered by Rabbit 2.1.2
まとめ2
Groongaの使い方
スキーマを作るa.
インデックスを作るb.
データを入れるc.
検索するd.
Droongaの はじめかた Powered by Rabbit 2.1.2
まとめ3
Droongaの使い方
クラスターを作るa.
以下、Groongaと同じb.
Droongaの はじめかた Powered by Rabbit 2.1.2
まとめ4
Droongaの構成
n個のGroongaで
大きなGroongaを構成
Droonga=大きなGroonga
Droongaの はじめかた Powered by Rabbit 2.1.2
今日の目標の確認
1人以上
Droongaデビューを見据えてGroongaデビュー
Upcoming SlideShare
Loading in...5
×

Droongaのはじめかた

181

Published on

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

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
181
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Droongaのはじめかた"

  1. 1. Droongaの はじめかた Powered by Rabbit 2.1.2 Droongaの はじめかた 須藤功平 クリアコード 全文検索エンジンGroonga勉強会@札幌 2014/03/29 2014/03/29
  2. 2. Droongaの はじめかた Powered by Rabbit 2.1.2 この勉強会とこの話の関連 勉強会 Groongaの利用事例を募集 この話 Groongaを使ったプロダクト Droongaの話
  3. 3. Droongaの はじめかた Powered by Rabbit 2.1.2 お知らせ1 4.0.1リリース!
  4. 4. Droongaの はじめかた Powered by Rabbit 2.1.2 4.0.1の新機能1 adjuster スコアブースト機能 使用例: 運営のオススメを上に表示 重み付きベクター レコード毎にn個の重みを設定 adjusterと連携するとよい
  5. 5. Droongaの はじめかた Powered by Rabbit 2.1.2 4.0.1の新機能2 データベース肥大化抑制 Milkodeユーザーにも効果大なはず 注意: データベースの再作成が必要 データベースの後方互換性あり
  6. 6. Droongaの はじめかた Powered by Rabbit 2.1.2 お知らせ2 1.0.1リリース!
  7. 7. Droongaの はじめかた Powered by Rabbit 2.1.2 1.0.1の新機能 adjuster対応 重み付きベクター対応 ユーザー視点の使い勝手向上 grn2drn-schema, droonga- send, ... 今月は開発者としてよりもユーザーとして触っていたから
  8. 8. Droongaの はじめかた Powered by Rabbit 2.1.2 今日の目標 1人以上 Droongaデビュー
  9. 9. Droongaの はじめかた Powered by Rabbit 2.1.2 話すこと Droonga 未経験者向け ヒント
  10. 10. Droongaの はじめかた Powered by Rabbit 2.1.2 流れ Droongaとはなにか Groongaの使い方 ↑とDroongaの使い方の違い Droongaの考え方のイメージ
  11. 11. Droongaの はじめかた Powered by Rabbit 2.1.2 Droongaとはなにか Distributed Groonga
  12. 12. Droongaの はじめかた Powered by Rabbit 2.1.2 Distributed? スケールアウト 可能
  13. 13. Droongaの はじめかた Powered by Rabbit 2.1.2 Droonga スケールアウト 可能な Groonga
  14. 14. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaが透けて見える スケールアウト 可能な Groonga
  15. 15. Droongaの はじめかた Powered by Rabbit 2.1.2 GroongaとDroonga 一部はGroonga != Droonga 一部はGroonga == Droonga
  16. 16. Droongaの はじめかた Powered by Rabbit 2.1.2 Groonga != Droonga APIは違う DroongaにGroonga互換レイヤーあり 構成は違う 1台でDroongaを使っても嬉しくない 性能特性は違う 1台で捌ける量→Groongaの方が速い
  17. 17. Droongaの はじめかた Powered by Rabbit 2.1.2 Groonga == Droonga クエリーの書き方は同じ スキーマの考え方は同じ 検索機能はだいたい同じ
  18. 18. Droongaの はじめかた Powered by Rabbit 2.1.2 Droongaをはじめるために 教養として Groongaを 押さえて おくべき!
  19. 19. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaの使い方 Droongaとはなにか Groongaの使い方 ↑とDroongaの使い方の違い Droongaの考え方のイメージ
  20. 20. Droongaの はじめかた Powered by Rabbit 2.1.2 なぜまずGroongaか Groongaはお手軽 1台のマシンで動く 設定ファイルなしで動く コマンドラインで動く
  21. 21. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaを使う流れ 初心者向けの簡易版 スキーマを作る1. インデックスを作る2. データを入れる3. 検索する4.
  22. 22. Droongaの はじめかた Powered by Rabbit 2.1.2 スキーマを作る 検索したいものを1つ決める 例: たいやき屋検索ならたいやき屋 検索したいものの集まりを テーブルにする 例: TaiyakiShopsテーブル 付加情報をカラムにする 例: 店舗名、場所、メニューなど
  23. 23. Droongaの はじめかた Powered by Rabbit 2.1.2 スキーマ例 table_create TaiyakiShops TABLE_HASH_KEY ShortText # 店舗名 column_create TaiyakiShops name COLUMN_SCALAR ShortText # 場所 column_create TaiyakiShops location COLUMN_SCALAR WGS84GeoPoint
  24. 24. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaを使う流れ: 2 スキーマを作る1. インデックスを作る2. データを入れる3. 検索する4.
  25. 25. Droongaの はじめかた Powered by Rabbit 2.1.2 インデックスを作る 全文検索対象を決める 例: 店舗名 トークンの集合を格納する テーブルを作る トークン: 最小検索単位 ↑にインデックスカラムを作る
  26. 26. Droongaの はじめかた Powered by Rabbit 2.1.2 インデックス例 # トークン用テーブル # 初心者は常にこれでOK table_create Tokens TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto # インデックスカラム column_create Tokens taiyaki_index COLUMN_INDEX|WITH_POSITION TaiyakiShops name
  27. 27. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaを使う流れ: 3 スキーマを作る1. インデックスを作る2. データを入れる3. 検索する4.
  28. 28. Droongaの はじめかた Powered by Rabbit 2.1.2 データを入れる フォーマットはJSON GroongaのJSONパーサーは緩い 多少壊れたJSONも受け付ける
  29. 29. Droongaの はじめかた Powered by Rabbit 2.1.2 データ例 load --table TaiyakiShops [ { "_key": "sapporo-yanagiya", "name": "札幌の柳屋", "location": "43.11629x141.34855" } ]
  30. 30. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaを使う流れ: 4 スキーマを作る1. インデックスを作る2. データを入れる3. 検索する4.
  31. 31. Droongaの はじめかた Powered by Rabbit 2.1.2 検索する 全文検索対象を指定する 検索キーワードを指定する
  32. 32. Droongaの はじめかた Powered by Rabbit 2.1.2 検索例 select TaiyakiShops --match_columns name --query "札幌" # [[...], ← レスポンスヘッダー # [[[1], ← ヒット件数 # ↓ 出力内容のメタデータ # [["_id","UInt32"],...], # ↓ マッチしたレコード # [1,"sapporo-yanagiya","...","札幌の柳屋"]]]]
  33. 33. Droongaの はじめかた Powered by Rabbit 2.1.2 Groongaを使う流れの再確認 スキーマを作る1. インデックスを作る2. データを入れる3. 検索する4.
  34. 34. Droongaの はじめかた Powered by Rabbit 2.1.2 流れ3 Droongaとはなにか Groongaの使い方 ↑とDroongaの使い方の違い Droongaの考え方のイメージ
  35. 35. Droongaの はじめかた Powered by Rabbit 2.1.2 Droongaを使う流れ クラスターを作る ← New1. スキーマを作る2. インデックスを作る3. データを入れる4. 検索する5.
  36. 36. Droongaの はじめかた Powered by Rabbit 2.1.2 クラスターを作る 大事だけど時間がないので 省略!
  37. 37. Droongaの はじめかた Powered by Rabbit 2.1.2 流れ4 Droongaとはなにか Groongaの使い方 ↑とDroongaの使い方の違い Droongaの考え方のイメージ
  38. 38. Droongaの はじめかた Powered by Rabbit 2.1.2 Droongaの構成 http://droonga.org/overview/
  39. 39. Droongaの はじめかた Powered by Rabbit 2.1.2 まとめ1 Droonga スケールアウト可能なGroonga Groongaと同じことがいろいろある Groongaの理解が役立つ
  40. 40. Droongaの はじめかた Powered by Rabbit 2.1.2 まとめ2 Groongaの使い方 スキーマを作るa. インデックスを作るb. データを入れるc. 検索するd.
  41. 41. Droongaの はじめかた Powered by Rabbit 2.1.2 まとめ3 Droongaの使い方 クラスターを作るa. 以下、Groongaと同じb.
  42. 42. Droongaの はじめかた Powered by Rabbit 2.1.2 まとめ4 Droongaの構成 n個のGroongaで 大きなGroongaを構成 Droonga=大きなGroonga
  43. 43. Droongaの はじめかた Powered by Rabbit 2.1.2 今日の目標の確認 1人以上 Droongaデビューを見据えてGroongaデビュー
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×