BloGroonga

2018-11-29

Groonga 8.0.9リリース

肉の日ですね。Groonga 8.0.9をリリースしました!

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

変更内容

主な変更点は以下の通りです。

トークナイザーのTokenDelimitが空白文字以外でも区切ってトークナイズできるようになりました

TokenDelimit で任意の区切り文字を指定するための新たなオプションとして delimiterpattern が追加されました。例:

% 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でガンガン検索してください!