Groonga 8.0.2リリース
今月も肉の日がやってきましたので、Groonga 8.0.2をリリースしました!
今回のリリースでは、プログラミングせずにオプション指定だけでトークナイザーとノーマライザーを「定義」できるようになりました。表記揺れの多いソースを検索するのに役立ちます。
それぞれの環境毎のインストール方法: インストール
変更内容
主な変更点は以下の通りです。
- [logical_range_filter]
sort_keys
オプションに対応しました。 - 新しい関数
time_format()
を追加しました。strftime
と同じ書式でTime
型のカラムの内容を出力できます。 - [tokenizers] トークナイザー
TokenNgram
を新たに追加しました。このトークナイザーは動作を動的に定義できます。 - [normalizers] Unicode 10.0 用の Unicode NFKC に基づくノーマライザー
NormalizerNFKC100
を追加しました。 - [normalizers] ノーマライザーのうち
NormalizerNFKC51
とNormalizerNFKC100
についてオプション指定に対応しました。ノーマライザーの動作を動的に変更できます。 - [dump][schema] トークナイザーとノーマライザーのオプションの出力に対応しました。この結果、Grooga 8.0.1 およびそれより古いバージョンではGroonga 8.0.2以降のバージョンで出力されたdumpやschemaをインポートできず、対応していない機能である旨のエラーが出力されるようになります。
[logical_range_filter] sort_keys
オプションへの対応
logical_range_filter
が sort_keys
に対応しました。これはselect
コマンドのsort_keys
オプションに相当します。
このオプションは検索対象のシャードが 1 つだけの場合にのみ動作し、複数のシャードを検索対象にする場合は動作しないことに注意して下さい。 詳細はコマンドリファレンスを参照して下さい。
新しい関数 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")'
[tokenizers] トークナイザー 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
[normalizers] 新たなノーマライザー NormalizerNFKC100
の追加
新しいノーマライザー NormalizerNFKC100
が追加されました。
これは Unicode 10.0 用の Unicode NFKC (Normalization Form Compatibility Composition) に基づく正規化を行う物です。
このノーマライザーと NormalizerNFKC51
はオプションの指定に対応しています。
詳細は次項を参照して下さい。
[normalizers] 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
) のオプションの出力に対応しました。
例:
table_create Site TABLE_HASH_KEY ShortText
column_create Site title COLUMN_SCALAR ShortText
table_create Terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer "NormalizerNFKC100(\"unify_kana\", true, \"unify_kana_case\", true)"
この変更の結果、これらのオプションの情報を含む dump
や schema
の結果は、Groonga 8.0.1 およびそれ以前のバージョンではインポートできなくなっています。
オプションが指定されていないトークナイザーやノーマライザーについては出力形式は旧バージョンから変わっていないため、上記のトークナイザーやノーマライザーの新機能を使っている場合にのみ注意が必要です。
さいごに
8.0.1からの詳細な変更点は8.0.2リリース 2018-04-29を確認してください。
それでは、Groongaでガンガン検索してください!