Groonga 8.0.9リリース
肉の日ですね。Groonga 8.0.9をリリースしました!
それぞれの環境毎のインストール方法: インストール
変更内容
主な変更点は以下の通りです。
- トークナイザーのTokenDelimitが空白文字以外でも区切ってトークナイズできるようになりました。
- ノーマライザーとトークンフィルターの、主に国際化関連での複数の改善。
トークナイザーのTokenDelimitが空白文字以外でも区切ってトークナイズできるようになりました
TokenDelimit
で任意の区切り文字を指定するための新たなオプションとして delimiter
と pattern
が追加されました。例:
% groonga
> tokenize 'TokenDelimit("delimiter", ",")' "A,B"
=> "A", "B"
> tokenize 'TokenDelimit("delimiter", ",")' "A , B"
=> "A ", " B" (空白文字が残っている)
> tokenize 'TokenDelimit("pattern", "\\\\s*,\\\\s*")' "A, B ,C"
=> "A", "B", "C"
2番目の例のように、delimiter
オプションで指定されなかった文字は区切り文字として扱われない事に注意して下さい。
3番目の例のように一定しない空白文字を含む入力に対しては、区切りを正規表現で指定できる pattern
オプションが便利でしょう。
ノーマライザーとトークンフィルターの、主に国際化関連での複数の改善
ノーマライザーの NormalizerNFKC100
が、新しいオプション unify_to_romaji
によるひらがな・カタカナからローマ字への変換に対応しました。例:
% groonga
> normalize 'NormalizerNFKC100("unify_to_romaji", true)' "リンゴ みかん"
=> "ringo mikan"
また、新たな組み込みのトークンフィルターとして TokenFilterNFKC100
も追加されました。
このトークンフィルターはノーマライザーの NormalizerNFKC100
と同様に、unify_kana
オプションによってカタカナからひらがなへの変換を行えます。例:
% groonga
> tokenize TokenMecab "リンゴおいしい" --token_filters TokenFilterNFKC100
=> "リンゴ", "おいしい" ("リンゴ" が全角にノーマライズされたのみ)
> tokenize TokenMecab "リンゴおいしい" --token_filters 'TokenFilterNFKC100("unify_kana", true)'
=> "りんご", "おいしい" ("リンゴ" が全角且つひらがなにノーマライズされている)
トークンフィルターの TokenFilterStem
では、新たに追加された algorithm
オプションによって英語以外の言語(フランス語、スペイン語、ポルトガル語、イタリア語、ルーマニア語、ドイツ語、オランダ語、スウェーデン語、ノルウェー語、デンマーク語、ロシア語、フィンランド語)のステミングを行えるようになりました。
具体的な使い方はこのオプションの自動テストを参照して下さい。
トークンフィルターの TokenFilterStopWord
では、新たに追加された column
オプションによって、is_stop_word
以外の任意の名前のカラムをストップワードの明示に使えるようになりました。
具体的な使い方はこのオプションの自動テストを参照して下さい。
さいごに
8.0.8からの詳細な変更点は8.0.9リリース 2018-11-29を確認してください。
それでは、Groongaでガンガン検索してください!