これはPGroonga 2.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。

pgroonga_normalize関数

2.0.3で追加

概要

pgroonga_normalize関数はGroongaのノーマライザーモジュールを使ってテキストをノーマライズします。

構文

この関数の構文は次の通りです。

text pgroonga_normalize(target)

targetはノーマライズ対象となるtext型の値です。処理にあたっては、デフォルトでは組み込みのNormalizerAutoノーマライザーを使います。

この関数の別の構文は次の通りです。

text pgroonga_normalize(target, normalizer)

normalizertext型の値です。使用するノーマライザーモジュールを指定します。

使い方

text型の値をノーマライズします。

SELECT pgroonga_normalize('aBcDe 123');
--  pgroonga_normalize 
-- --------------------
--  abcde 123
-- (1 row)

ノーマライザーを指定できます。

SELECT pgroonga_command('plugin_register normalizers/mysql');
SELECT pgroonga_normalize('aBcDe 123', 'NormalizerMySQLGeneralCI');
--  pgroonga_normalize 
-- --------------------
--  ABCDE 123
-- (1 row)

groonga-normalizer-mysqlを使うためにplugin_register normalizers/mysqlを実行しています。groonga-normalizer-mysqlはMySQL互換のノーマライザーを提供します。

ノーマライザーのオプションも指定できます。

SELECT pgroonga_normalize('あア', 'NormalizerNFKC130("unify_kana", true)');
--  pgroonga_normalize 
-- --------------------
--  ああ
-- (1 row)

複数のノーマライザーを指定することもできます。以下は実用的ではない例です。

SELECT pgroonga_normalize('あー-ア', 
  '
    NormalizerNFKC130("unify_kana", true),
    NormalizerNFKC130("unify_hyphen_and_prolonged_sound_mark", true)
  '
);
--  pgroonga_normalize 
-- --------------------
--  あ--あ
-- (1 row)

参考