BloGroonga

2014-01-29

今日は2014年最初の肉の日ですね。

Groonga 3.1.2リリース

Groonga 3.1.2 をリリースしました!

それぞれの環境毎のインストール方法: インストール

ロックタイムアウトをカスタマイズできるようになりました

今回のリリースでは、ロックタイムアウトをビルド時にカスタマイズできるようになりました。この定数はデフォルトでは、長めの値10000秒(約3時間)になっています。(通常はこの値を変更する必要はありません。)

ビルド時に変更するには次のようにします。

configureを使う場合:

$ ./configure --with-lock-timeout=(任意の値)

CMakeを使う場合:

cmake -DGRN_LOCK_TIMEOUT=(任意の値)

Groongaではユーザーが動的に変更する仕組みを提供していませんが、Mroongaの場合には動的にロックタイムアウトが変更できる(SET GLOBAL mroonga_lock_timeout)のでソースからビルドする必要はありません。

GRN_JA_SKIP_SAME_VALUE_PUTが標準で有効になりました

昨年11/29日にリリースしたGroonga 3.1.0では、同じ値なら更新をスキップするオプションをサポートしました。このときのリリースでは、あくまでオプションをサポートしたのみで、標準では無効となっていました。そのため使いたい人は設定ファイルを編集して有効にしてくださいという扱いでした。

今回のリリースからは、設定ファイルを変更することなく標準でこのオプションを有効にするようにしました。同じ値なのに頻繁に更新が発生していたケースではデータベースの肥大化を抑制することができるようになります。

実際に GRN_JA_SKIP_SAME_VALUE_PUTを有効にした簡単な例については以下を参照にしてみてください。

&&や||の挙動がECMAScriptにより準拠するようになりました

これまでX && Y や X || Yを評価した結果については、1もしくは0が返すようになっていましたが、ECMAScriptにならって、そのものの値を返すようになりました。

この変更がはいるとどう嬉しいかというと、たとえば、snippet_htmlを使っているケースが該当します。

snippet_htmlでは該当するスニペットがない場合のデフォルト値を指定することができませんでした。今回の変更で、そのものの値を返すようになったので、次のようにするとスニペットのデフォルト値を指定することができるようになります。

snippet_html(XXX) || 'デフォルトの値'

例えば、titleカラムとcontentカラムがあり、条件にマッチするもののtitleを抜きだすとき、必ずしもtitleに指定したキーワードが含まれないことがあります。そんなときでも、デフォルトの値にtitleを指定しておくと空っぽの結果にならずにすみます。

さいごに

3.1.1からの詳細な変更点は 3.1.2リリース 2014/01/29 を確認してください。

それでは、Groongaでガンガン検索してください!