Post on 24-Jul-2020
transcript
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�AirCPU�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�
msec47�msec
本⽂ 103�msec
6�msec
Rroongaの全⽂検索性能 Powered�by�Rabbit�2.1.2
検証2
⽇本語Wikipedia�5万件�XML�512MB
SQLite3 Rroongaカテゴリ 9339�
msec88�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
ありがとうございました