全文検索エンジンgroongaを囲む昼下がり@札幌
最初の自己紹介のまとめ
- ここにきている人だけあって、groonga使ってる人が多い
- Senna, tritonnもちらほら
- 中の人が札幌に来たので勢いで開催
Groongaの中の人、森さんによる概要
ざっくり概要
- 全文検索エンジンが出発点
- データストア能力が強化されてきた
- 特徴
- 転置索引
- 即時更新
- カラムストア
なぜ転置索引か
- searchのスループットを重視
- 転置 > Suffix Array > Signature > 線形
- indexingは遅い傾向がある
即時更新
- CGM等ですぐ検索できないと使いづらい
- groongaではここを頑張ってる
- リアルタイムに強いということを今日は覚えてかえる
カラムストア
- 普通のRDBではレコード毎に保存
- filter, sort, group byは大体必須な機能なので、高速化したい
groongaの使い方とかとか
- Cのライブラリがある
- groongaコマンドで操作
- HTTPもあり。レスポンスはJSON
- gqtp - groonga query transfer protocol
- HTTPよりも効率はいい
- memcachedプロトコルも話せる
SennaとGroonga
- Senna
- アイルトン・セナが速いから付けた
- 他のRDBと組み合わせて使う
- Groonga
- MySQL, PostgreSQLと使うこともできる
森さんがいろいろ
- Cライブラリで直接扱うと速い
- MySQL経由だとSQLのうんぬんがあるので、それほど早くないかも
- ひとつのDBに対してMySQL, HTTP, Cライブラリからなど同時にアクセスできる
MySQL + Sennaの不満
- MyISAM
- メンテが大変
- 5.0
- 更新しながら、検索さくさくできない
- MyISAMは書き込み時にreadもブロックしちゃうよね
MySQL + Groongaでは
- Groongaでも更新せな!っていうのを頑張ってる
- プラガブルストレージエンジンに対応
- データストアがそもそもあり
休憩
Groongaの構造とデータの流れ
資料を見た方がいい
http://www.clear-code.com/blog/2011/10/5.html
ちょっとだけメモ
- パトリシアトライ
- トライ(Trie) <- retrieval
- lexicon
- 転置索引がゼロになっても、こっちは消さない
- テーブル構造にしているのは今後拡張できるように
- トークンのポジションも保存するかどうか選べる
- 重みも記録できる
質問タイム
- Groongaのこれからやっていきたいこと
- 性能を良くする
- インデックス構築はまだ早く出来る
- versioned indexをいれたい
- あまり使わないのはコンパクトにしたりとか
- トランザクションは検討したい
- 性能を良くする
- スケールアウト
- MySQL + Spider + Groonga が現状はいいかも
- MySQL InnoDBの全文検索とGroongaどっちが速いの?(森さん)
- 都合よくデータでてきた!
- MySQL + Groonga (storage mode)の方がindexsingがやっぱり速い
- 事例とか
- 書いていいかわからないのでカット
- 文章数はどのくらいまでいれたことがあるか
- twitterのデータを入れたときが多かった
- 1nodeで1000万レコード。まあ扱えている感じ
- gqtpのバイナリプロトコルのドキュメントはあるのか
- ないようです
- source読んでね
- データベースファイルをmvすると問題あるような?
- rubyのライブラリからmvしたやつを使うと怪しい
0 件のコメント:
コメントを投稿