質問: htmlソースの検索について postgres 8.3.9を使用しています。 現在使用しているテーブルの中に htmlソースを格納しているカラムがあります。 テーブル名:contents カラム名:text ※データ例:グーグル htmlソースが格納されたカラムに対して、キーワードでの検索を行いたいと考えています。 当然ながら以下の様に検索をすると、htmlソース(例:href)をキーワードとしても検索に引っかかってしまいます。 select * from contents where text like '%【検索キーワード】%'; なんとか、htmlソースをキーワードとした場合は検索されずに、 htmlタグに囲まれた部分(※上記データだと'グーグル')をキーワードとした場合にだけ、 検索されるようにしたいと考えています。 何か良い手法はないでしょうか。 ご教授をお願い致します。
回答: 意味が良く分かりません。 例えば、"href"がキーワードの場合 (1)グーグル (2)href (1)はヒットせず、(2)はヒットするということ? だとすると、こんな感じでしょうか? select * from where text ~* '.*>[^<]*★.*<.*' ★の所はキーワード postgresの場合、正規表現によるマッチング演算子は6個 あるので、likeよりずっと応用範囲が広い。但し、使い こなすのは凄く難しい。正規表現がjava等のものと微妙に 異なるし、詳しい説明は何処にもない。 私も「体」で覚えました。いろいろ試してみてください。 サンプルが正しいかどうか分かりませんから・・・