- 締切済み
ヤフーのような全文検索をする方法は?
私はMySQLを使ってデータベースを作り、そこにデータをいれて情報を活用している者です。 MySQLのようDBで、あるいは他の方法でも構わないのですが、データを全文検索する方法が解りません。 1つのフィールドに検索をかけると全文検索にはなりませんし、1つのフィールドにすべてのデータを入れる方法という事なのでしょうか? 良い方法知っている方は教えて頂けないでしょうか?お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yarra
- ベストアンサー率0% (0/0)
全てのフィールド(複数フィールド)への全文検索は, select * from data where name like '%キーワード%' or address like '%キーワード%' などとorで指定すれば可能です。 ただし、Webページの様な長文になりかねないデータの場合、インデックス化が困難なので、お勧めできません。Chasen等を利用し、単語化してからDBを作ってそれに対して検索をかけるのが通常です。
- noopee
- ベストアンサー率38% (114/297)
こんにちは。 全文検索のシステムを構築するのは非常に大変です。 aeicさんの条件をすべて満たすかどうかは分かりませんが、namazuを使用してみてはいかがでしょうか? MySQLでも使えるかどうかは分かりませんが、PostgreSQLには使用できました。
- 参考URL:
- http://www.namazu.org/
- Mizyu
- ベストアンサー率41% (245/593)
質問の趣旨が取れないのですが、フィールド内で前方後方一致検索をする、ということでしょうか? MySQLは触ったことがないのでわかりませんが、ワイルドカードを使って検索すればいいのではないでしょうか? SELECT * FROM table_a WHERE sel_a Like "%abc%"; Oracleでは%がワイルドカードとなり、 sel_aの中に'abc'という文字列があれば検索対象になります。
補足
申し訳ないです。 補足の説明を致します。 1つのテーブルの1つのフィールドから検索をするのではなく、すべてのテーブル、つまり全文検索を行ないたい場合はどのような方法をするのかという事でした。 いろいろなサイトで全文検索と称しフリーワードで検索が出来るようになっていますが、どのような仕組みで作られているのか解りません。 どうか良きアドバイスを教えて頂けないでしょうか? お願いします。