SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rroongaの全⽂
検索性能
Naoya(@naoa̲y)
61st�Ruby/Rails勉強会@関⻄�LT
2014/05/31
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
自⼰紹介
Naoya�(@naoa̲y)
大学は情報系✓
新卒で3年半ほど⾦融系のユーザSI
でインフラSE
✓
現在は3年半ほどITと無縁の仕事✓
Ruby歴は実働数⽇ほど✓
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
国産の全⽂検索
エンジン
Groongaって
知ってますか?
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Groongaって?
C⾔語で書かれた⾼速な全⽂検
索ライブラリ/サーバ
MySQLのストレージエンジンとし
て実装されたMroonga
✓
Rubyらしい記法でRubyから全⽂検
索できるRroonga
✓
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
個⼈でMroonga
でそこそこ大規模
な全⽂検索Web
サービスを作りま
した。
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Groongaは少
ないハードウェ
ア資産でもかな
り⾼速な全⽂検
索ができる!
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
デスクトップ向
けの全⽂検索ア
プリをRubyで
作りたい!
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rroongaって?
Rroongaのほかにサーバがな
くともローカルのみで⾼速な全
⽂検索機能が実現可能
✓
アプリに組み込みやすい。イメ
ージとしてはSQLiteみたいな
もの
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rroongaの利用例
るりまサーチ
Rubyのリファレンスマニュアルを
検索できるWebアプリ�http://
docs.ruby-lang.org/ja/search/
✓
✓
Milkode
ソースコード検索エンジン、検索ア
プリ�http://
milkode.ongaeshi.me/�(るびま
0045号に記事掲載)
✓
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
実際のところ
Rroongaっ
てどのくらい
速いの?
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rubyだし
⾔うほどじ
ゃ・・・?
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
試してみ
よう!
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証環境
MacBook�Air
CPU�1.4GHzデュアルコアIntel�
Core�i5
✓
Memory�4GB✓
SSD�128GB✓
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証⽅法
⽇本語Wikipediaのカテゴリ上
位100件を検索
✓
カテゴリ上位100件で⽇本語
Wikipediaのタイトルと本⽂を
全⽂検索
✓
検証プログラム�http://
github.com/naoa/rroonga-
wikipedia-bench
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証1
⽇本語Wikipedia�1万件�XML�
168MB
SQLite3 Rroonga
カテゴリ 2314�
msec
47�msec
本⽂ 103�
msec
6�msec
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証2
⽇本語Wikipedia�5万件�XML�
512MB
SQLite3 Rroonga
カテゴリ 9339�
msec
88�msec
本⽂ 341�
msec
30�msec
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証3
⽇本語Wikipedia�183万件(全件)�
XML�17GB
Rroonga
カテゴリ 1601�msec
本⽂ 56�msec
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証4
⽇本語Wikipedia�366万件(全件
*2)�XML�33GB
Rroonga
カテゴリ 3087�msec
本⽂ 113�msec
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証5
...✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
MacBook�
Airのディスク
が逼迫したの
でここまで!
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Mroongaでの経験
則から⾔うとこの数
倍ぐらいなら⾼速に
全⽂検索できると思
います。(⽇本語で
Bigramの場合。)
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Mroongaを使った全
⽂検索のWebサービ
スでは、最大で
400GB超、1000万
レコード超でもサーバ
1台でそこそこ⾼速に
検索できています。
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rroongaで
は、⾼速な全⽂
検索のほかに位
置情報検索機能
もあります。
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
先⽇、Heroku
でRroongaが
使えるビルドパ
ックがリリース
されています。
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
Rroongaを
使ってみた
くなりまし
たよね?
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
おわりに
2014/6/27(⾦)19:00から神
⼾でGroongaに関する勉強会
をします。
✓
Groongaに興味が沸いた⽅は
是非参加してください!
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
おわりに
Rroonga,Rabbit等の作者、
Ruby/Groongaコミッタの須
藤さん(@ktou)が東京から来て
くれます!
✓
2014/6/28(土)に大阪で
Groongaに関するイベントが
できればと考えています。
✓
会場提供等に協⼒していだける
⽅がいたら嬉しいです。
✓
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
ありがと
うござい
ました

Weitere ähnliche Inhalte

Was ist angesagt?

2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリMasaru Gushiken
 
Rails 速度改善結果レポート
Rails 速度改善結果レポートRails 速度改善結果レポート
Rails 速度改善結果レポートMasaru Gushiken
 
Google trends to_irc
Google trends to_ircGoogle trends to_irc
Google trends to_ircrarere
 
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長新潟コンサルタント横田秀珠
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!Kouhei Sutou
 
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索Kouhei Sutou
 
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹Yasuki Ichishima
 
ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力Hiroumi Mitani
 

Was ist angesagt? (8)

2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ2ヶ月で売上約15万を実現したアパレル系webアプリ
2ヶ月で売上約15万を実現したアパレル系webアプリ
 
Rails 速度改善結果レポート
Rails 速度改善結果レポートRails 速度改善結果レポート
Rails 速度改善結果レポート
 
Google trends to_irc
Google trends to_ircGoogle trends to_irc
Google trends to_irc
 
検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長検索数1万回以上でスマホ検索率80%以上のキーワード特長
検索数1万回以上でスマホ検索率80%以上のキーワード特長
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
 
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
 
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
 
ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力ソーシャルブックマークサービスのSEO力
ソーシャルブックマークサービスのSEO力
 

Ähnlich wie Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531

frozen string literal in Ruby
frozen string literal in Rubyfrozen string literal in Ruby
frozen string literal in RubyKoichi ITO
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei Sutou
 
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使うRyo Nagai
 
Rubyを使った分散全文検索ミドルウェア
Rubyを使った分散全文検索ミドルウェアRubyを使った分散全文検索ミドルウェア
Rubyを使った分散全文検索ミドルウェアKouhei Sutou
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方Satomi Tsujita
 
Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)masayoshi takahashi
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1Satomi Tsujita
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話ko ty
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Drecom Co., Ltd.
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状Aki Ariga
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)三七男 山本
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係sady_nitro
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜Fukui Osamu
 
世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装Ryoma Sin'ya
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 
Groongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてGroongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてNaoya Murakami
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 

Ähnlich wie Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531 (20)

frozen string literal in Ruby
frozen string literal in Rubyfrozen string literal in Ruby
frozen string literal in Ruby
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う
 
Rubyを使った分散全文検索ミドルウェア
Rubyを使った分散全文検索ミドルウェアRubyを使った分散全文検索ミドルウェア
Rubyを使った分散全文検索ミドルウェア
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 
Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)Web関連技術の最新動向・プログラミング言語(サーバ側)
Web関連技術の最新動向・プログラミング言語(サーバ側)
 
Groonga族2015
Groonga族2015Groonga族2015
Groonga族2015
 
Groonga族2014
Groonga族2014Groonga族2014
Groonga族2014
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)
 
RubyとRのおいしい関係
RubyとRのおいしい関係RubyとRのおいしい関係
RubyとRのおいしい関係
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
 
世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装世界最速の正規表現JITエンジンの実装
世界最速の正規表現JITエンジンの実装
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
Groongaの可変型Ngramトークナイザーについて
Groongaの可変型NgramトークナイザーについてGroongaの可変型Ngramトークナイザーについて
Groongaの可変型Ngramトークナイザーについて
 
GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 

Rroongaの全文検索性能 Ruby kansai-20140531-ruby-kansai-20140531