- ベストアンサー
MySQLのあいまい検索について
- MySQLのあいまい検索について質問させていただきます。バとヴァ・ブとヴ・全角ハイフンと半角ハイフンなどを同じとみなして検索することはできるのでしょうか。
- データベースには「ラブ」と登録されているが検索キーワードは「ラヴ」と入力された場合、検索結果に「ラブ」の行を表示したいです。PHPとMySQLで開発をするのですが、MySQLではなくPHPの処理になるのでしょうか。
- MySQLのあいまい検索について期待される動作について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私の知識では、そういったことをするなら、市販の検索エンジンなどを考えます。 以前、PanaSearchという検索エンジンを使ったことがあります。 でも調べてみると、あいまい検索に関する機能の説明はありませんでした。なくなっているのかも。 調べてみると、PHPには標準でそういったものがそなわっているとか。 http://www.jamboree.jp/cms/archives/19/comment-page-1 また、あいまい単語テーブルのようなものを用意して、あいまいの組み合わせを全部登録しておき・・・とがんばれば自力で実装するのもできなくはないと思います。 いずれにせよ、商品になるほどのアルゴリズムになりますね。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>バとヴァ・ブとヴ・全角ハイフンと半角ハイフンなどを >同じとみなして検索することはできるのでしょうか。 質問内容自体ロジックが固まってないので、厳しいですね。 PHPと連携するならPHP側で考慮したSQLを発行してやることです。 ただ・・・あいまい検索というはlike '%hoge%'的なことを 考えていますか?前方後方一致はSQLとしては非常に効率の悪い 処理になるので、あまりお勧めできません。 分かち書き処理を入れて全文検索をするのであれば、 あいまい部分を考慮してキーワードを追加しておけば効率は高くなると思います
補足
yambejpさん、ご回答ありがとうございます。 MySQLで考慮するのは難しそうですね。 > ただ・・・あいまい検索というはlike '%hoge%'的なことを > 考えていますか?前方後方一致はSQLとしては非常に効率の悪い > 処理になるので、あまりお勧めできません。 はい。 そのように考えております。 よくあるキーワード検索などの処理は皆様どのように実装されているのでしょうか。
補足
kotoby2003さん、ご回答ありがとうございます。 あいまい単語テーブルとは・・・対応表みたいなイメージでしょうか。 column1|column2 バ |ヴァ ブ |ヴ これをどのように使って実装するのでしょうか。 ちょっとイメージがわかないのですが・・・ PHPの方で実装するように考えなおした方がよさそうですね。