全文検索エンジンgroongaがつなぐコミュニティの輪

EnterpriseZine / 2012年12月12日 0時0分

 将来的にはスケールアップとスケールアウトのいずれも取り組む。スケールアップは「groonga++」で最大レコード数を1000倍の1兆にまで拡大するとのこと。スケールアウトはMySQLユーザー向けにはSpiderとmroongaの組み合わせがあり、ほかにもfluentdでレプリケーションだけではなくシャーディングもできないかと「絶賛実験中」だそうだ。

 今回の勉強会はコンパクトなユーザー事例が次々と報告された。特にrroongaの事例が目立った。rroongaだと低レイヤのAPIが使えるためか、速さを求められられるシステムで採用されることが多いようだ。例えばVOYAGE GROUPで使われる広告配信システム、ニコニコ生放送のリアルタイムコメント検索の「ニコ番」、ソースコード検索エンジン「Milkode」などが紹介された。

 ニコ番を開発した「てみた」さんは、当初「ニコ生のコメントを使えば人力の地震速報ができるのでは」という構想を抱いた。キーボードに手を置いているユーザーの声を拾えば速くて確実ということだ。しかしそれを実現するにはワードの抽出やプッシュ配信という機能を持たせなくてはならない。

 「KVSのような検索エンジンがほしい。動的に構築できて、かつ高速に検索できるもの。どうせならRubyでいろいろと試したい」と思っていたところ、rroongaが条件にうまく合った。チュートリアルが分かりやすかったのも良かったそうだ。そうしてできたのが「ニコ番」だそうだ。

 Milkodeは2万ファイル程度であれば、1秒以内に目的の行を検索できるとのこと。開発した「ongaeshi(おんがえし)」さんはgroongaとrroongaを使う良さとして、groongaにはカラムストア(データベース)機能があるため、groongaをインストールすれば別途データベースをインストールする必要がないこと、Rubyだけで書けること、ローカル検索にも強いことを挙げた。

 mroongaの事例にはnanapiの和田さんが登場した。今では検索のサジェストにmroongaを使っている。サイトの上部に表示される検索バーにキーワードを入力すると表示されるものだ。例えば「恋愛」と入力すると「恋愛のハウツー」、「恋愛トラブルの対処法」など関連するカテゴリがサジェストされる。もともとnanapiでは記事やカテゴリにはMySQLを使っていたため、mroongaは相性がよかった。MySQLとの相性と即座に検索結果を返せるという要件がうまくはまった。

この記事に関連するニュース

トピックスRSS

ランキング