ja ja ja ja ja ja ja ja ja en ja ja ja ja ja ja ja ja ja ja ja en ja ja ja ja ja eu en sco en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja lt ja ja ja ja ja ja ja ja ja ja id ja sco ja en ja ja ja ja ja fi ja ja hy ja ja ja ja ja ja ja ja ja eu ja ja ja ja ja ja ja ja ja ja en ja ja en ja ja vi ja sv eu ja en en hu ja ja en en pl ja ja jbo hbs_lat en ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja
全文検索エンジンgroongaを囲む夕べ 2: 「groonga村」と「mroongaのベンチマーク」用資料 - 2011-12-01 - ククログ
正しくは、「mroongaの方が劇的に速い」という結果ではなく、以下のように「mroongaの方が速い」という結果でした。
ここでは、groonga周辺の技術の整理にもなるので「groonga村」の内容を紹介します。
groonga開発チームの期待
まずはじめにこの会でgroonga開発チームが参加者のみなさんに期待していることを伝えました。
期待していることは以下の2つです。
groonga開発者が増えること
groongaユーザーが増えること
どちらもgroongaがよくなることにつながります。
森さんの資料(PDF)や矢田さんの資料(PDF)にもあるとおり、groonga開発チームでやりたいことはいろいろあるのですが、そこまで手がまわっていません。groongaを開発してくれる人が増えると、groongaがより使いやすくより速い全文検索エンジンになります。
ユーザーが増えるといろんな環境でのテストにもなります。問題があったとフィードバックをもらって、それを修正できればgroongaの品質が向上します。また、実際に使うにはどのような機能が求められているかを聞かせてもらえれば、よりgroongaを使いやすくすることにも役立ちます。それ以外にも「このように使っています」や「groongaを使うために便利なツールを作りました」などといった情報を公開してくれるというのも、groongaユーザーにとって有益な情報になります。ぜひ、使って、フィードバックや情報公開をお願いします!
groongaの開発に参加したいという方も、groongaの事例紹介ページに載せてもいいという方も、groongaのメーリングリストまたはgroonga at razil.jp(またはkou@clear-code.com)へご連絡ください!
今年の会は、参加者のみなさんが以下を期待しているのではないかということで構成しました。
それぞれについて以下のセッションで扱いました。資料は公開できるように調整中です。すでに公開されているものはリンクしています。まだ資料が公開されていないものはUstreamの録画を観てください。
もう使っていいくらいgroongaは安定しているのか
Geographical Searching: 株式会社ぐるなびの塩畑さん
mroongaのベンチマーク(前述)
mroongaの未サポート機能(2011/11/29時点): mroonga開発者の斯波さん
前回の会からどのくらい進化しているのか
新年と収穫の祭り(PDF): groonga創始者の森さん
mroonga: mroonga開発者の斯波さん
groonga with PostgreSQL: フォルシア株式会社の奥野さん
groongaは高速化のために内部でどのように頑張っているのか
groonga開発予報(PDF): 有限会社未来検索ブラジルの矢田さん
groongaを使っていて困っていることがあるから聞きたい
株式会社VOYAGE GROUPの社内ステキバーのAJITOで行う懇親会
groonga関連ソフトウェアの位置づけ
groongaはライブラリとして利用できるため、MySQLやPostgreSQL、Rubyなど様々なソフトウェアと連携できます。そのため、今回の会でもたくさんの分野の話がでてきます。話をきいているうちにどこの話をしているのかわからなくなってしまうと、話についていけなくなってしまうかもしれません。それを防ぐためにgroongaとその関連ソフトウェアの位置づけを説明しました。
これが全体像です。それでは、それぞれの部分を説明します。
キー管理機能(レコードを参照するときに利用)や転置索引、キーストアなどgroongaが提供する機能のベースになる機能を提供するレイヤーがあります。
コア機能の上にデータベース機能を提供するDB APIがあります。このAPIを使うとSQLiteのようにプロセス内にデータベースを持ったアプリケーションを開発することができます。
DB APIを使ったソフトウェアがrroongaです。RubyからDB APIを使えるようになります。buzztterやるりまサーチ、Milkodeなどがrroongaを使っています。
MySQLからDB APIを使うためのソフトウェアがmroongaです。SQLを使ってgroongaを使えるようになるため、既存のSQL関連の技術をそのまま使えることが魅力です。例えば、Ruby on RailsでWebアプリケーションを使っている場合はActiveRecord経由でgroongaの高速な全文検索機能を使えることになります。
groongaは独自のクエリ言語を持っています。RDBMSでいうSQLのようなものです。このAPIを使うと文字列をやり取りすることでgroongaの機能を使うことができます。
groongaコマンド
クエリAPIをネットワーク越しやコマンドライン上で使うためにgroongaコマンドを提供しています。groongaコマンドはHTTPサーバーにもなるため、特別なライブラリではなく通常のHTTPライブラリを使うだけで任意のプログラミング言語からgroongaの機能を使うことができます。塩畑さんの発表にもある通り、ぐるなびさんではHTTPでgroongaの機能を利用しています。
クエリAPIをNode.jsから使えるようにするライブラリがnroongaです。Node.jsからgroongaの機能を利用するためのnode-groongaというライブラリもありますが、こちらはgroongaコマンドのHTTPサーバーと通信するもので、直接クエリAPIを叩くnroongaとはレイヤーが違います。node-groongaはgroongaコマンドをより便利に使うためのもので、nroongaはgroongaコマンドのHTTPサーバー機能の代替になりうるものです。
groongaコマンドでもHTTPサーバー機能を実現できますが、実は単純なHTTPサーバー機能しかありません。例えば、認証機能もありませんし、WebSocketを実現することもできません。それらの機能も実現できるリッチなHTTPサーバーはNode.jsが提供する機能を利用するのがよいのではないか、というアイディアから生まれたものです。まだ開発が始まったばかりのプロジェクトですが、興味のある方はぜひ開発に参加してください!
textsearch_groonga
PostgreSQLからgroongaの機能を使うためのソフトウェアがtextsearch_groongaです。mroongaと違いDB APIとクエリAPIをうまく組み合わせてgroongaの機能を使っています。
groongaはライブラリとして利用できるため、このように多くのソフトウェアと連携し、ニーズにあわせた使い方ができるようになっています。ぜひgroongaを使ってみてフィードバックをお願いします!
それでは、また、来年のいい肉の日に会いましょう1。会場提供をしてくれたVOYAGE GROUPのみなさん、Ustreamで放送してくれたグニャラくんさん、司会をしてくれた坂井さん、受付をしてくれたRuby会議実行委員会のしまださん、すずきさん、発表者のみなさん、会場に来てくれたみなさん、Ustreamで参加してくれたみなさん、ありがとうございました!
おまけ: 参加状況について
今回も前回同様にATNDを使ってイベント告知・参加者登録を行いました。定員100名で告知をし、前日までに160名くらいの登録でキャンセル数は1桁でした。ですが、前回の当日キャンセル数とキャンセルなしで不参加の傾向を考えると、事前に160名の参加登録があったとしても当日はちょうど定員である100名くらいになるのではないかと予想し、「補欠の人も会場にきても大丈夫です」ということにしました。実際、当日にキャンセル数が30くらいになり、キャンセルなしで不参加の人も50人くらいいたため、最終的には80-90名くらいの参加になりました。(当日に参加登録した方もいたようです。)
「補欠の人も会場にきても大丈夫です」というスタイルは会場提供のVOYAGE GROUPさんがOKを出してくれたので実現できたのですが、このくらいのゆるさでやったほうがちょうどよくなるのかもしれませんね。柔軟な対応、ありがとうございました!
groonga開発チーム主催のgroonga勉強会は年に一度ですが、ユーザーのみなさんはいい肉の日以外にもgroonga勉強会を開催して大丈夫です! ↩
現在クリアコードではソフトウェア開発者を募集しています! フリーソフトウェア開発での開発の仕方をベースに、成果や知識を公開し共有しながら業務に携われます。
Groongaについて開発者に質問できる「グルカイ!」ほぼ毎週火曜日12:15-12:45 Groongaチャンネルで開催中です。 Groongaについて知りたい人、ぜひご参加ください。
いらないキャッシュを消すとRubyスクリプトが速くなる
デバッグ力: よく知らないプログラムの直し方
Apache Arrow
milter manager
ククログの記事はCC BY-SA 4.0とGFDLのデュアルライセンスで自由に利用できます。
クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。
クリアコードは「クリアコードをいい感じにする人」を1名募集しています。
クリアコードはフリーソフトウェア開発で培った技術力を提供しています。特にMozilla製品(Mozilla FirefoxとMozilla Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。