[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 メーリングリストの案内