[pgsql-jp: 34056] Re: ひらがな/カタカナの区別

中村 mailinglist_man @ yahoo.co.jp
2004年 10月 1日 (金) 10:52:00 JST


石井さん、うらもとさん返信ありがとうございます。

なるほど、インデックスを使用する方法があるのですか。

それとこういった場合はやはり、ひらがな又はカタカナのどちらか一方に変換す
るのが一般的なのですかね?

私が気になっているパターンは
たとえば、「黄色いクジラ」という文字がデータにあったとします。
そこで検索キーワードを「いく」とし、検索すると
「黄色いクジラ」をひらがなに一括変換するため、「黄色いくじら」となり
検索にヒットしてしまいます。
「いく」もしくは「イク」というデータにはヒットさせ、「黄色いクジラ」には
ヒットさせないというのは無理があるのでしょうか?
こうした場合、ひらがな・カタカナを反転させる必要があると思いますが、方法
が思いつきません。
もし、なにか情報をお持ちでしたら参考にさせてください。
よろしくお願いいたします。

> > 列Aのカタカナを全部ひらがなに変換した、検索用列Bを用意し、
> > 
> > 検索キーワードをひらがなに変換かけて、列Bに対して
> > 検索を行う。
> > 
> > という方法が思いつきました。
> > (つまり、全部ひらがなで検索するということです。)
> 
> 検索用列を用意しなくても,カタカナ->ひらがなに変換するユーザ定義関数
> to_hiraを作り,
> 
> CREATE INDEX hiragana_index ON foo(to_hira(i));
> 
> とかやっておいて,
> 
> SELECT * FROM foo WHERE to_hira('ホゲ') = to_hira(i);
> 
> とかすれば高速に検索できます.





pgsql-jp メーリングリストの案内