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

■(POSTGRESQL)複数カラムに指定の文字列が含まれているか、高速に検索したい

例として下記のようなテーブルがあるとします。

productsテーブル
id | product_name | category | price | detail

ユーザがWEBから検索ワードを指定し、そのワードが含まれるレコードを抽出したいです。
ただ、何も考えずにSQLを作成すると下記のように、非常にハイコストなSQLができてしまいます。
(AND検索を想定しています)

*検索ワードとして"おもちゃ","ハリーポッター"の2語が指定された場合

SELECT id FROM products
WHERE product_name LIKE '%おもちゃ%'
OR category LIKE '%おもちゃ%'
OR price LIKE '%おもちゃ%'
OR detail LIKE '%おもちゃ%'
AND product_name LIKE '%ハリーポッター%'
OR category LIKE '%ハリーポッター%'
OR price LIKE '%ハリーポッター%'
OR detail LIKE '%ハリーポッター%'

今回の例のようなテーブルでは各カラムに文章が入るわけではないため、
ludia等の全文検索を利用するのは筋違いなのでは?と思っています。

こういったパターンにおいてどのような処理を行うのがよいか
ご自身の経験上、ある程度自信をお持ちの方にお伺いできればと思います。

よろしくお願いします。

●質問者: jayz
●カテゴリ:インターネット ウェブ制作
✍キーワード:postgreSQL SELECT SQL Web いるか
○ 状態 :キャンセル
└ 回答数 : 0/0件

回答がありません
関連質問


●質問をもっと探す●



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