今携わってるプロジェクトで、キーワード検索のレスポンス向上の為に
Oracle Textを使おうともくろんでいます。
問い合わせをするにしても、結構予約語があって
ANDとかNOTとかいう単語を入れるとSQLエラーになっちゃいます。
アプリケーションの中に辞書を作って
NGワードが来たら見なかった振りをするようにしようかしら、
と思っていたのですが、さすが商用RDBMS!
contains(列名, '{比較対象文字列}') > 0
でよしなにしてくれるようです。
ただ、比較対象文字列に「}」があるとSQLエラーになるので
「}}」のようにエスケープしてやらないといけません。
その辺、PreparedStatement使ったら自動的にやってくれるんでしょうか?
(SQL文から判断してというのはちょっと考えにくい)*1
インデックス再構築や問い合わせ自体のレスポンスとか
検証しなければならないのですが、きっとOracle様なのでそれなりの
結果を出して下さるでしょう。
今日は人と話さずコードを書く日でした。たまにはそんな日があっても良いなぁ。[[]]