Masafumi Yokoyama
yokoy****@clear*****
2018年 5月 1日 (火) 12:42:23 JST
Groongaプロジェクトです。 おとといは肉の日でしたね。Groonga 8.0.2をリリースしました! http://groonga.org/ja/blog/2018/4/29/groonga-8.0.2.html 今回のリリースでは、プログラミングせずにオプション指定だけでトークナイザーとノーマライザーを「定義」できるようになりました。表記揺れの多いソースを検索するのに役立ちます。 細かな変更点についてはニュースをご確認下さい。 http://groonga.org/ja/docs/news.html#release-8-0-2 それでは、8.0.2のリリースについて紹介します。 # 変更内容 主な変更点は以下の通りです。 * [logical_range_filter] sort_keys オプションに対応しました。 * strftime と同じ書式で Time 型のカラムの内容を出力できるようになりました。 * オプション指定が可能なトークナイザー TokenNgram を新たに追加しました。 * Unicode 10.0 用の Unicode NFKC に基づくノーマライザー NormalizerNFKC100 を追加しました。 * ノーマライザーのうち NormalizerNFKC51 と NormalizerNFKC100 についてオプション指定に対応しました。 * [dump][schema] トークナイザーとノーマライザーのオプションの出力に対応しました。 ## [logical_range_filter] sort_keys オプションへの対応 logical_range_filter が sort_keys に対応しました。これは select コマンドの sort_keys オプションに相当します。 このオプションは検索対象の shard が 1 つだけの場合にのみ動作し、複数の shard を検索対象にする場合は動作しないことに注意して下さい。 詳細はコマンドリファレンスを参照して下さい。 http://groonga.org/ja/docs/reference/commands/logical_range_filter.html#sort-keys ### 新しい関数 time_format() を追加 Time 型のカラムの出力形式を strftime と同じ書式で指定できるようになりました。 例えば、以下のコマンド列は _key カラムの内容を UNIX 秒表記と人間にも分かりやすい 2018-04-29T10:30:00 のような表記の両方で出力します: select Timestamps --sortby _id --limit -1 \ --output_columns '_key, time_format(_key, "%Y-%m-%dT%H:%M:%S")' ## トークナイザー TokenNgram を新たに追加 新しいトークナイザー TokenNgram が追加されました。 このトークナイザーは、オプション指定で動作を動的に定義することができます。 オプションは TokenNgram("[オプション名 1]", [値 1], "[オプション名 2]", [値 2], ...) のような形式で指定します。 例: table_create --name Terms --flags TABLE_PAT_KEY --key_type ShortText \ --default_tokenizer 'TokenNgram("n", 2, "loose_symbol", true)' \ --normalizer NormalizerAuto ## 新たなノーマライザー NormalizerNFKC100 の追加 新しいノーマライザー NormalizerNFKC100 が追加されました。 これは Unicode 10.0 用の Unicode NFKC (Normalization Form Compatibility Composition) に基づく正規化を行う物です。 このノーマライザーと NormalizerNFKC51 はオプションの指定に対応しています。 詳細は次項を参照して下さい。 ## NormalizerNFKC51 と NormalizerNFKC100 のオプション指定に対応 ノーマライザーのうち NormalizerNFKC51 と NormalizerNFKC100 について、オプションで細かい挙動を動的に変更できるようになりました。 オプションは NormalizerNFKC100("[オプション名 1]", [値 1], "[オプション名 2]", [値 2], ...) のような形式で指定します。 例: table_create --name Terms --flags TABLE_PAT_KEY --key_type ShortText \ --default_tokenizer TokenBigram \ --normalizer 'NormalizerNFKC100("unify_kana", true, "unify_kana_case", true)' ## [dump][schema] トークナイザーとノーマライザーのオプションの出力に対応 dump と schema の両コマンドで、トークナイザー (TokenNgram) とノーマライザー (NormalizerNFKC51 および NormalizerNFKC100) のオプションの出力に対応しました。 この変更の結果、これらのオプションの情報を含む dump や schema の結果は、Groonga 8.0.1 およびそれ以前のバージョンではインポートできなくなっています。 オプションが指定されていないトークナイザーやノーマライザーについては出力形式は旧バージョンから変わっていないため、上記のトークナイザーやノーマライザーの新機能を使っている場合にのみ注意が必要です。 ## 感謝 * satouyuzhさん(スペースのみのクエリの取り扱いに関するフィードバック)