HAYASHI Kentaro
hayas****@clear*****
2014年 1月 29日 (水) 12:08:45 JST
林です。 今日はGroonga Meetupの開催日ですね。 まず最初にGroonga Meetupのお知らせです。 昨年11/29(いい肉の日)にGroongaを囲む夕べ4を開催しましたが、 より草の根的なイベントを開催してみようということで、Groonga Meetupを 企画してみました。たんに発表を聞くだけじゃなくて、みんなで手を動 かしてみようという参加型のイベントです。今回はドキュメントを中心にみん なでできることをいくつか選んでみました。 かっちりとしたタイムテーブルがあるわけではないので、遅れてきても大丈夫 です。質問しに来たい人も歓迎しています。参加登録はこちらからどうぞ。 http://atnd.org/events/47093 Groonga 3.1.2をリリースしました! http://groonga.org/ja/docs/news.html#release-3-1-2 それぞれの環境毎のインストール方法はこちらを見てください。 http://groonga.org/ja/docs/install.html 今回のリリースではデータベースのファイル形式は互換性があるのでデータベースを作りなおす必要はありません。 ただし、スクリプト構文の挙動で変更があります。 今回のリリースの主なトピックは次の通りです。 * ロックタイムアウトをカスタマイズできるようになりました * GRN_JA_SKIP_SAME_VALUE_PUTが標準で有効になりました * &&や||の挙動がECMAScriptにより準拠するようになりました * [募集] コマンドリファレンスをいっしょに良いものにしませんか * [募集] groongaからGroongaへ 表記の統一を一緒にやってみませんか * [募集] 週刊Groongaの情報を海外向けに発信してみませんか ○ ロックタイムアウトをカスタマイズできるようになりました 今回のリリースでは、ロックタイムアウトをビルド時にカスタマイズできるよ うになりました。 この定数はデフォルトでは、長めの値10000秒(約3時間)になっています。 configureを使う場合には、--with-lock-timeoutオプションに任意の値を指定 します。CMakeなら-DGRN_LOCK_TIMEOUTに任意の値を指定します。 Mroongaの場合には動的にロックタイムアウトが変更できる(SET GLOBAL mroonga_lock_timeout)のでソースからビルドする必要はありません。 ○ GRN_JA_SKIP_SAME_VALUE_PUTが標準で有効になりました 昨年11/29日にリリースしたGroonga 3.1.0では、同じ値なら更新をスキップす るオプションをサポートしました。 このときのリリースでは、あくまでオプションをサポートしたのみで、標準で は無効となっていました。そのため使いたい人は設定ファイルを編集して有効にし てくださいという扱いでした。 今回のリリースからは、設定ファイルを変更することなく標準でこのオプショ ンを有効にするようにしました。 同じ値なのに頻繁に更新が発生していたケースではデータベースの肥大化を 抑制することができるようになります。 実際に GRN_JA_SKIP_SAME_VALUE_PUTを有効にした簡単な例については 以下を参照にしてみてください。 全文検索エンジンGroongaでデータベースの肥大化を防ぐには http://qiita.com/groonga/items/d18c5df5410207b4f0e6 ○ &&や||の挙動がECMAScriptにより準拠するようになりました これまでX && Y や X || Yを評価した結果については、1もしくは0が返すよう になっていましたが、ECMAScriptにならって、そのものの値を返すようになり ました。 この変更がはいるとどう嬉しいかというと、たとえば、snippet_htmlを使って いるケースが該当します。 snippet_htmlでは該当するスニペットがない場合のデフォルト値を指定するこ とができませんでした。今回の変更で、そのものの値を返すようになったので、 次のようにするとスニペットのデフォルト値を指定することができるようにな ります。 snippet_html(XXX) || 'デフォルトの値' 例えば、titleカラムとcontentカラムがあり、条件にマッチするものの titleを抜きだすとき、必ずしもtitleに指定したキーワードが含まれないこと があります。そんなときでも、デフォルトの値にtitleを指定しておくと空に ならずにすみます。 ○ [募集] コマンドリファレンスをいっしょに良いものにしませんか APIのドキュメント化作業が一段落したので、次のステップとして コマンドリファレンスの改善作業をはじめました。 コマンドリファレンスは新規コマンドが追加されたり、機能が追加されたり する度に加筆修正していっているので、今では古いスタイルと 新しいスタイルとが混在している状態になっています。 これを新しいスタイルに統一しようというのが、このコマンドリファレンスの 改善作業の内容です。 ただ現状リソースが足りていないので、ユーザのみなさんにも協力していただけたらいいなと思っています。 具体的な作業手順の詳細については以下を参照してください。 もし、できそうだな、とかちょっとやってみよう、と思われたらぜひ参加して くれると嬉しいです。 http://groonga.org/ja/blog/2013/08/12/reference-command-documentation.html ○ [募集] groongaからGroongaへ 表記の統一を一緒にやってみませんか? リリースアナウンスや、公式ドキュメントをみてもうすでに気づいた人がいるかもしれませんが、 Groonga関連のソフトウェアの表記を「Groonga」(先頭が大文字)へ統一する作業をすすめています。 これは、世界中で広く使ってもらえることを視野に入れているからです。 それなりに分量があるので、ドキュメントに散らばっている「groonga」表記の統一をお手伝いしてくれる人を募集します。 コードを書かなくてもできる作業なので一緒にやってみませんか。 Groongaプロジェクトに名前を残せるチャンスですよ! 具体的にどんなふうに作業をすすめたらいいかについては、エントリを書いたので、 そちらを参照してください。 http://groonga.org/ja/blog/2013/10/30/use-capitalized-notation.html すでに、yoku0825さんやcosmo0920さんが参加してくれています。 それらの成果はもちろん今回のリリースに反映されています。ありがとうござ います! ○ [募集] 週刊Groongaの情報を海外向けに発信してみませんか 毎週木曜に Qiita http://qiita.com/ にてGroongaやMroonga,Rroongaなどの トピックを一つ投稿するという取り組みを続けています。 それなりにトピックがたまってきたので、これを翻訳して英語圏にも情報を発信して いこうかと考えています。 ただ、現状リソースがあまり足りていないので、ユーザのみなさんにも 翻訳作業を協力していただけたらいいなと思っています。 翻訳作業の詳細については以下を参照してください。 http://groonga.org/ja/blog/2013/07/22/qiita-translation.html ○ [参考] 隔週連載Groonga これまでも、groonga.orgにて利用事例 http://groonga.org/ja/users/ を 紹介してきましたが、それとは別に、http://gihyo.jp/にてGroonga関連の記事の連載を 隔週連載Groongaとしておよそ2013年4月から半年間連載しました。 まだGroongaを知らない人にもWebの連載記事を通じて知ってもらいたいとい うのが動機で始めましたが、この半年間でgroonga-devへの新規投稿が活発化する など、一定の成果をあげることができました。 ユーザーのみなさんの事例紹介の記事のおかげで、この企画を続けることが できました。ひとつの区切りとして連載は終了しましたが、ユーザー事例とその補足を 取り混ぜた連載です、ぜひ参考にしてみてください。 過去の記事(第1回から第10回)については隔週連載Groongaのページを参照してください。 http://gihyo.jp/dev/clip/01/groonga 似たような動機で、毎週木曜にQiitaでのGroonga関連の情報提供も続けています。 こちらも参考にどうぞ。 http://qiita.com/groonga ○ 変更点 さて、3.1.1からの変更点は以下の通りです。 http://groonga.org/ja/docs/news.html#release-3-1-2 改良 * [doc] "Groonga" 表記に更新しました。[cosmo0920さんがパッチ提供] [GitHub#136, #137, #138, #139, #140, #141, #142, #143, #144, #145, #146, #147, #148, #149, #150, #151] * ロックタイムアウトの値をカスタマイズできるようにしました。 詳細は 全体設定 を参照してください。 [groonga-dev,02017] [yokuさんが提案] * [doc] ロックタイムアウトについての説明を追加しました。 * GRN_JA_SKIP_SAME_VALUE_PUT をデフォルトで有効にしました。 以前のバージョンまでは、この設定は 'no' となっていました。この変更により、Groongaのデータベースのサイズの増加を抑制できます。 * ネストしたインデックスと複数のキーワードを含むクエリに対するインデッ クスを使えるようにしました。この変更で複数のキーワードで絞り込んだときに検索結果が欠落していた問題が改善します。 * スニペット向けにノーマライザーをカスタマイズするためのAPIを追加しました。 修正 * 空のクエリに対してインデックスを使わないようにしました。 この変更で、空のクエリでも検索できるようになりました。ただし空のレ コードがたくさんあるとパフォーマンスの問題があることに注意してください。 [groonga-dev,02052] [村上さんが報告] * "X || Y"と"X && Y"の返り値の振舞いをECMAScriptに準拠するようにしました。 "X || Y"では、もしXかYが条件を満す場合にはXもしくはYそのものの値を返します。以前は1もしくは0を返していました。 * "X && Y"では、もしXとYが条件を満す場合には、1ではなく、Xの値を返します。 もしXが条件を満さない場合には、0ではなくfalseを返します。 * スニペットが見付からない場合にはnullを返すようにしました。 この変更により、 snippet_html のデフォルトの値を指定できるようになりました。 この用途には "snippet_html(XXX) || 'デフォルトの値'"を使って下さい。 感謝 * cosmo0920さん * yokuさん * 村上さん -- HAYASHI Kentaro <hayas****@clear*****>