Más contenido relacionado
La actualidad más candente (9)
Similar a Groonga勉強会3 生放送でコメント検索してみた (20)
Groonga勉強会3 生放送でコメント検索してみた
- 2. 自己紹介
• HN: てみた temita
• Twitter: @temitan
• 興味 : rroonga,Ruby, Rails, Android
• はてダ: http://d.hatena.ne.jp/temita/
↑[ あとで書く ]
完全に一致
12/01/12 2
- 4. きっかけ
• 人力最速地震速報を作ってみたい
– ニコニコ生放送とかは情報はやそう・・
– 地震ワードの抽出が必要 地震だ!
→ バズッター的な仕組みがいるかな・・
→ コメントを検索できたほうが面白そう
震度4
→ ニコ番 はあ
る!
– プッシュ配信が必要
→ アラート通知のような仕組みがいるかな・・
→ 通知ツールのほうが面白そう・・
→ ニコニコール( Web 生放送通知ツール)
12/01/12 4
- 6. なぜ rroonga?
• KVS のような簡単な検索エンジンがほしい
• 動的に構築して高速に検索したい
• Ruby であれこれ操作したい
• rroonga にはチュートリアルがある!
12/01/12 6
- 7. rroonga を選択するときは?
• rroonga はサーバ型ではなくて組み込み型
– 更新しながら参照にするのに強い
• 参照ロックフリー!
– レプリケーション機能は持っていない
• 複数サーバで分散することは考えない方がいい
• 使いたいときは mroonga の出番
• select クエリの書き方
– クエリのタイミング
• ブロックがループ文で評価されると思っていると
はまる
• &(AND) と |(OR) の使い方
12/01/12 7
- 8. システム構成
ニコ生コメント
サーバ 検索専用
Ruby on Rails Ruby
passenger
参照ロックフリー!
コメント収集
Fetche Groonga file
Fetche Ruby
Fetche
rr
r
ruby
12/01/12 8
- 9. テーブルとか
Lives
id Community Live_url Live_title Visit_count Come_count
111 Communities http~coxx 雑談だよ 1 1
222 Communities http~coxx 凸待ち 222 2222
Comments reference
live_id community timestamp comment
live Communities “18:56:00 2012” “ クリスマス中止だっ
て”
live Communities “18:56:01 2012” “ クルーズきた”
Terms 自動で登録される
そのまま
_key Comments_comment
タグに使え
おっさ 11,22,33,33,55,66,77,88
る ん
クルー ,99,122,123,124,125,126
- 10. コメントからキーワードタグ生
成
• 全部のコメントからタグ生成
– Groonga が持っている語彙表から取ってくる
terms = Groonga[“Terms”]
terms.each do |record|
tags[record.key] = record.Comments_comment if
record.key.size > 10
end
12/01/12 10
- 11. Select の書き方
• select でカジュアルに検索
• 10 分間の [ おっさん ] コメントを検索する
offset_time = 600
w = " おっさん "
time_before = Time.now - offset_time
records = comments.select do |record|
(record.comment =~ w) & ( record.timestamp > time_before )
end
pagenate_records = records.paginate([["_id", :descending]],
{:page => 1, :size => 10})
比較は必ず Groonga::RecordExpressionBuilder
× (time_before < record.timestamp )
○( record.timestamp > time_before )
- 12. 使い方の参考にしたもの
• 本家チュートリアル
– Select の使い方はここでわかる
• ソースコード
– ドキュメントにないことはソースコードにあ
る
– るりまサーチとドキュメント
– rroonga 本体とテストコード
• Mailing Lists
– http://lists.sourceforge.jp/mailman/listinfo/groon
12/01/12 ga-dev 12
- 13. まとめ?
• rroonga
– rroonga は小規模 ~ 中規模向き
– 更新の激しいシステムに使える
– Mailing Lists で質問すると幸せになれる
• コメント検索は楽しい