Rabbit Slide Show

Rroongaの全文検索性能

Description

Ruby初心者がRroongaの全文検索の性能を試してみる

Text

Page: 1

Rroongaの全⽂
検索性能
Naoya(@naoa̲y)
61st Ruby/Rails勉強会@関⻄ LT
2014/05/31
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 2

自⼰紹介
✓ Naoya (@naoa̲y)
✓ 大学は情報系
✓ 新卒で3年半ほど⾦融系のユーザSI
でインフラSE
✓ 現在は3年半ほどITと無縁の仕事
✓ Ruby歴は実働数⽇ほど
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 3

国産の全⽂検索
エンジン
Groongaって
知ってますか?
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 4

Groongaって?
✓ C⾔語で書かれた⾼速な全⽂検
索ライブラリ/サーバ
✓ MySQLのストレージエンジンとし
て実装されたMroonga
✓ Rubyらしい記法でRubyから全⽂検
索できるRroonga
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 5

個⼈でMroonga
でそこそこ大規模
な全⽂検索Web
サービスを作りま
した。
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 6

Groongaは少
ないハードウェ
ア資産でもかな
り⾼速な全⽂検
索ができる!
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 7

デスクトップ向
けの全⽂検索ア
プリをRubyで
作りたい!
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 8

Rroongaって?
✓ Rroongaのほかにサーバがな
くともローカルのみで⾼速な全
⽂検索機能が実現可能
✓ アプリに組み込みやすい。イメ
ージとしてはSQLiteみたいな
もの
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 9

Rroongaの利用例
✓ るりまサーチ
✓ Rubyのリファレンスマニュアルを
検索できるWebアプリ http://
docs.ruby-lang.org/ja/search/
✓ Milkode
✓ ソースコード検索エンジン、検索ア
プリ http://
milkode.ongaeshi.me/ (るびま
0045号に記事掲載)
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 10

実際のところ
Rroongaっ
てどのくらい
速いの?
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 11

Rubyだし
⾔うほどじ
ゃ・・・?
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 12

試してみ
よう!
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 13

検証環境
✓ MacBook Air
✓ CPU 1.4GHzデュアルコアIntel 
Core i5
✓ Memory 4GB
✓ SSD 128GB
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 14

検証⽅法
✓ ⽇本語Wikipediaのカテゴリ上
位100件を検索
✓ カテゴリ上位100件で⽇本語
Wikipediaのタイトルと本⽂を
全⽂検索
✓ 検証プログラム http://
github.com/naoa/rroonga-
wikipedia-bench
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 15

検証1
⽇本語Wikipedia 1万件 XML 
168MB
SQLite3 Rroonga
カテゴリ
2314  47 msec
msec
本⽂
103  6 msec
msec
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 16

検証2
⽇本語Wikipedia 5万件 XML 
512MB
SQLite3 Rroonga
カテゴリ
9339  88 msec
msec
本⽂
341  30 msec
msec
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 17

検証3
⽇本語Wikipedia 183万件(全件) 
XML 17GB
Rroonga
カテゴリ
1601 msec
本⽂
56 msec
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 18

検証4
⽇本語Wikipedia 366万件(全件
*2) XML 33GB
Rroonga
カテゴリ
3087 msec
本⽂
113 msec
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 19

検証5
✓ ...
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 20

MacBook 
Airのディスク
が逼迫したの
でここまで!
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 21

Mroongaでの経験
則から⾔うとこの数
倍ぐらいなら⾼速に
全⽂検索できると思
います。(⽇本語で
Bigramの場合。)
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 22

Mroongaを使った全
⽂検索のWebサービ
スでは、最大で
400GB超、1000万
レコード超でもサーバ
1台でそこそこ⾼速に
検索できています。
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 23

Rroongaで
は、⾼速な全⽂
検索のほかに位
置情報検索機能
もあります。
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 24

先⽇、Heroku
でRroongaが
使えるビルドパ
ックがリリース
されています。
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 25

Rroongaを
使ってみた
くなりまし
たよね?
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 26

おわりに
✓ 2014/6/27(⾦)19:00から神
⼾でGroongaに関する勉強会
をします。
✓ Groongaに興味が沸いた⽅は
是非参加してください!
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 27

おわりに
✓ Rroonga,Rabbit等の作者、
Ruby/Groongaコミッタの須
藤さん(@ktou)が東京から来て
くれます!
✓ 2014/6/28(土)に大阪で
Groongaに関するイベントが
できればと考えています。
✓ 会場提供等に協⼒していだける
⽅がいたら嬉しいです。
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Page: 28

ありがと
うござい
ました
Rroongaの全⽂検索性能
Powered by Rabbit 2.1.2

Other slides