人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Postgresを使用して、検索のシステムを制作しておりますが、データベース内が半角カタカナや全角カタカナ、または全角英数字、半角英数字とばらばらなのですが、これを

バラ
バラ

と入力してもバラもバラも検索に引っかからせる事は出来ますでしょうか?

●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:カタカナ システム データベース 入力 制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ●
●35ポイント

出来るか、出来ないか、と言えば出来ます。

ただし、DB(PostgreSQL)の機能のみでは厳しいです。

[参考URL]

プログラム側でDB操作時の半角、全角を統一すれば良いです。

具体的には、入力値の英数字は全て半角に変換してDBに格納、入力値の半角カタカナは全角カタカナに変換してDBに格納し、検索の際にも英数字は半角に変換、半角カタカナは全角カタカナに変換して検索します。

つまり、DBには全角英数字、半角カタカナは存在しない状況を作っておけば良いわけです。

例えば、Perlを使う場合、Jcodeモジュールを使って上記で説明しているような変換を行います。

Jcodeを使った変換の方法はこのあたりで確認してみてください。

PHPであればmb_convert_kana()という関数が使えます。

参考になれば幸いです。

◎質問者からの返答

ご回答ありがとうございます!

うーん、ただ、DBには、既にデータが入っており、そこを検索したいため、ちょっと、違うかもしれません。


2 ● pxb12663
●35ポイント

phpだと、mb_convert_kana関数が使えます。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k05.htm

この関数を使って、DBから読み込んだ文字列と検索に利用する文字列を全角に変換して検索させれば両方ヒットします。

他の言語でも同じような関数はあると思います。

◎質問者からの返答

これはDBから、全ての値を取り出した後に、if文等で、条件分岐させるという事でしょうか?

また、書き忘れましたが、言語はPHPです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ