
MySQLのあいまい検索について
いつもお世話になっております。
本日はMySQLのあいまい検索について質問させていただきます。
あいまい検索といっても like での検索ではなく
バとヴァ・ブとヴ・全角ハイフンと半角ハイフンなどを
同じとみなして検索することはできるのでしょうか。
たとえば、データベースには「ラブ」と登録されているが
検索キーワードは「ラヴ」と入力された場合、検索結果に「ラブ」の行を表示したいです。
PHPとMySQLで開発をするのですが、MySQLではなくPHPの処理になるのでしょうか。
カテゴリ違いでしたら申し訳ありません。
よろしくご教示お願いいたします。
[環境]
MySQL:5.0.45
PHP:5.1.6
No.2ベストアンサー
- 回答日時:
私の知識では、そういったことをするなら、市販の検索エンジンなどを考えます。
以前、PanaSearchという検索エンジンを使ったことがあります。
でも調べてみると、あいまい検索に関する機能の説明はありませんでした。なくなっているのかも。
調べてみると、PHPには標準でそういったものがそなわっているとか。
http://www.jamboree.jp/cms/archives/19/comment-p …
また、あいまい単語テーブルのようなものを用意して、あいまいの組み合わせを全部登録しておき・・・とがんばれば自力で実装するのもできなくはないと思います。
いずれにせよ、商品になるほどのアルゴリズムになりますね。
この回答への補足
kotoby2003さん、ご回答ありがとうございます。
あいまい単語テーブルとは・・・対応表みたいなイメージでしょうか。
column1|column2
バ |ヴァ
ブ |ヴ
これをどのように使って実装するのでしょうか。
ちょっとイメージがわかないのですが・・・
PHPの方で実装するように考えなおした方がよさそうですね。
No.1
- 回答日時:
>バとヴァ・ブとヴ・全角ハイフンと半角ハイフンなどを
>同じとみなして検索することはできるのでしょうか。
質問内容自体ロジックが固まってないので、厳しいですね。
PHPと連携するならPHP側で考慮したSQLを発行してやることです。
ただ・・・あいまい検索というはlike '%hoge%'的なことを
考えていますか?前方後方一致はSQLとしては非常に効率の悪い
処理になるので、あまりお勧めできません。
分かち書き処理を入れて全文検索をするのであれば、
あいまい部分を考慮してキーワードを追加しておけば効率は高くなると思います
この回答への補足
yambejpさん、ご回答ありがとうございます。
MySQLで考慮するのは難しそうですね。
> ただ・・・あいまい検索というはlike '%hoge%'的なことを
> 考えていますか?前方後方一致はSQLとしては非常に効率の悪い
> 処理になるので、あまりお勧めできません。
はい。
そのように考えております。
よくあるキーワード検索などの処理は皆様どのように実装されているのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- X(旧Twitter) Twitter検索から除外 1 2023/08/18 11:00
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- その他(ブログ) ブログを始めたいと思うのですが、下記のような場合のおすすめブログサービスを教えてください。 収益化な 4 2023/04/10 10:01
- SEO 検索エンジン反映遅い 1 2022/06/04 07:35
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- YouTube 虫の動画について書いていますので、苦手な方は注意してください。 YouTubeの検索結果にしつこく出 1 2023/03/22 06:53
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
部分一致検索ができなくて困っ...
-
複数条件による検索
-
MySQL 配列もどきを条件式に
-
他のシートの検索
-
ALTER TABLE mytable CHANGE
-
MYSQLとPHPの連携について
-
INDIRECT関数の代替方法は?
-
1000件以下の場合はカラム数に...
-
AUTO_INCREMENTに0はダメ?
-
重複カラムを持つ2テーブルの...
-
パフォーマンスとIN句とAND、実...
-
ワイルドカード式で検索
-
MYSQLのストアドでの動的SQLに...
-
SELECT文で、指定カラム以外の...
-
ENUM列に列挙されていない値を...
-
インデックスキーを設定するとK...
-
mysqlで検索結果にupdateをしたい
-
SQLServerでNULLを挿入したいです
-
【SQL文】このような結合UNION...
-
MYSQLで全てのカラムから検索す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LIKEの右側にカラムを指定でき...
-
複数カラムに対するLIKE文の最適化
-
mysqlで50音順にorder byしたい。
-
スペースによる絞り込み検索をS...
-
複数キーワードを複数カラムに...
-
End Ifに対応するIfブロックが...
-
PL/SQLでの文字列比較
-
whereで全てを検索する方法
-
SQLステータス:37000について
-
WHERE `年月日` = '晴' OR `年...
-
Access & ADOで「'」のLIKE検索
-
MySQLのあいまい検索について
-
LIKE演算子の%について教えて...
-
LIKEは類似一致検索なのでしょ...
-
直角三角形でもM、NはOと一致し...
-
複数の条件での絞り込み検索の仕方
-
前と後という言葉の意味
-
私は相手の言葉と行動が一致し...
-
ORDER BY CASEで異なる並替え...
-
場合の数 中学入試 5枚のカード
おすすめ情報