5.0.1のバグフィックスリリースです。
MessagePack 1.0.1をサポート。 [畑ケさんが報告]
[logical_range_filter] 範囲検索をデフォルトで無効にした。 環境変数 GRN_LOGICAL_RANGE_FILTER_ENABLED に yes を設定すれば有効になる。
JSONPが動作していなかった不具合を修正。これはGroonga 4.1.1で入った不具合。
Groonga 5.0.1がx86環境でクラッシュする不具合を修正。[groonga-dev,03131] [篠田さんが報告]
libeditが正しく初期化されない不具合を修正。CentOS 7などの環境で問題が解消される。
篠田さん
畑ケさん
[logical_range_filter] filterとsortをサポートしました。
マルチカラムインデックスを使った指定範囲の検索をサポートしました。
Groongaをライブラリとして使う人向けにAPIの 概要 を追加しました。
[非互換] 内部で使っている _score の型を 32bit整数値から浮動小数点に変更しました。この変更はGroongaのDB APIを使っているユーザーにとって非互換な変更です。クエリAPIを使っているユーザーには影響ありません。つまり、select を使っているだけなら影響ないということです。新旧のバージョンのGroongaで動作するようにするには次のコードを使います:
grn_obj *score;
double score_value;
if (score->header.domain == GRN_DB_FLOAT) {
score_value = GRN_FLOAT_VALUE(score);
} else {
score_value = (double)GRN_INT32_VALUE_FLOAT_VALUE(score);
}
[select] ドリルダウンの引数の誤りをより厳密にチェックするようにしました。
grn_ctx_get_all_tables() を追加しました。 [Masatoshi Teruyaさんが提案]
スコア関数のカスタマイズをサポートしました。詳細は Scorer を参照してください。
[非互換] スコア関数の導入により、DB API層でAPIとABIの互換性がなくなりました。grn_search_optarg を使っていたら、次のようなコードで grn_search_optarg を 0 で初期化しているかチェックしてください。:
grn_search_optarg options;
memset(&options, 0, sizeof(grn_search_optarg));
上記のようにしていれば、あなたの書いたコードはAPIの互換性があり、ABIは互換性がない状態です。単にそのままリビルドしてください。コードの修正は不要です。
もしあなたの書いたコードが上記のようにしていないなら、上記のコードを追加してください。
DB APIに grn_obj の型をチェックするための叙述関数を追加しました。
[実験的] ポスティングリストをスキップできるようにしました。頻出語とほとんど出現しない語が同時に検索されたときにスキップできます。これにより検索の速度を改善できます。この機能を有効にするには GRN_II_CURSOR_SET_MIN_ENABLE 環境変数を 1 にします。デフォルトでは無効です。
[doc] in_values のドキュメントを追加しました。
logical_count のドキュメントを追加しました。
[mruby] #inspect メソッドを実装しました。デバッグに有用です。
スコアラー scorer_tf_at_most のドキュメントを追加しました。出現頻度が高くても、指定したスコアの閾値を越えないようにします。
[mruby] マッチする件数を推定してインデックスを使って検索するかシーケンシャルに検索するかを選択できるようにしました。
インデックスを使ってサイズを推定するための関数を追加しました。
NormalizerAuto が利用できるかのチェックを追加しました。[GitHub#283] [末永さんが報告]
Visual Studio 2010のサポートをやめました。
[実験的][mecab] チャンクに分割してトークナイズできるようにしました。この機能は MeCabの "too long sentense" エラーの回避策です。有効にするには GRN_MECAB_CHUNKED_TOKENIZE_ENABLED 環境変数を yes に設定します。この設定により、Groonga は長いテキスト (デフォルトでは 8192 バイトを越えるテキスト)を小さなチャンクと呼ばれるかたまりに分割してMeCabへと渡します。この処理により、上記のエラーが発生しないようになります。さらに、このチャンクの閾値は GRN_MECAB_CHUNK_SIZE_THRESHOLD 環境変数でカスタマイズできます。,, ., !, ?, U+3001 IDEOGRAPHIC COMMA, U+3002 IDEOGRAPHIC FULL STOP, U+FF01 FULLWIDTH EXCLAMATION MARK と U+FF1F FULLWIDTH QUESTION MARK がチャンクの区切り文字として扱われます。
groongaコマンド のサーバーモードで --pid-file をサポートしました。
[groonga-httpd] Groongaを緩やかに停止することができるようにしました。コネクションを即座に強制終了しないようになります。
[実験的] 正規表現をサポートしました。正規表現の使いかたについては 正規表現 を参照してください。
[実験的] plugin_unregister コマンドを追加しました。
[http][load] "," をPOSTデータの区切り文字として使うようにしました。これにより、内部のバッファサイズが小さくて済むので、POSTデータに一切改行がない場合にロード時間を短縮できます。
[doc] トークナイザー のドキュメントを追加しました。
POSIX.2 との互換性を改善しました。. bashの "source" コマンドのかわりに . を使うようにしました。[GitHub#317] [栗山さんがパッチ提供]
[windows] デフォルトのIOバージョンを1に変更しました。これによりWindowsでディスク容量を削減できます。[groonga-dev,03118] [ongaeshiさんがテスト]
[httpd] バンドルしているnginxのバージョンを1.7.11に更新しました。
TSV出力時のMIMEタイプを text/plain から text/tab-separated-values に変更しました。
[TokenFilterStopWord] 静的なインデックス構築方法 をサポートしました。[GitHub#296] [村上さんがパッチ提供]
非推奨の --address 引数をGroongaのデフォルト設定ファイル(groonga.conf)で使わないようにしました。かわりに --bind-address を使います。 [Groonga-talk] [Dewanggaさんが報告]
[truncate] キーが TABLE_NO_KEY なテーブルでtruncateができない問題を修正しました。
[mecab] 不必要な "empty token" や "ignore empty token" といったログが出力されないようにしました。
誤ったインデックスのセクションが使われてしまう不具合を修正しました。これにより誤った検索結果を返していました。次の条件をすべて満すと発生します。
複数のインデックスが張られている
最初に定義したインデックスか最後に定義したインデックスがマルチカラムインデックスを使っている
最初に定義したインデックスと最後に定義したインデックスがマルチカラムインデックスだったとき、そのソースカラムの指定順が異なっている
シェルのコマンドラインからGroongaのコマンドを groongaコマンド に渡すと常に 0 を終了コードとして返す不具合を修正しました。 例えば、 groonga DB_PATH 存在しないコマンド名 を実行しても終了コードとして 0 を常に返します。
2つ以上のプラグインを登録しているときにプラグインのパスが壊れてしまう不具合を修正しました。 [村上さんが報告]
match_columns に Lexicon.index.source_column_name を指定しても動作しない不具合を修正しました。source_column_name として指定されたカラムが2つ以上のインデックスをもつ場合に発生します。 [村上さんが報告]
Masatoshi Teruyaさん
末永さん
Dewanggaさん
栗山さん
ongaeshiさん
村上さん
バージョン5.0.0になりました!
[実験的] シャーディングするためのプラグインを追加しました。有効にするには register sharding を前もって実行します。レコードをselectするには logical_count を使います。
[cmake] FreeBSD 10.1でのコンパイルエラーを修正しました。[MDEV-7293] [Bernard Spilさんが報告]
プラグインのディレクトリをカスタマイズできるようにしました。 その場合 GRN_PLUGINS_DIR 環境変数を設定します。
システムに互換性のないバージョンのonigmoもしくはonigurumaのヘッダーがインストールされているとビルドに失敗する問題を修正しました。 [GitHub#276] [武者さんがパッチ提供]
MSVCのtime関連でビルドに失敗する問題を修正しました。 [GitHub#237]
武者さん
Bernard Spilさん