Oracle Text

今携わってるプロジェクトで、キーワード検索のレスポンス向上の為に
Oracle Textを使おうともくろんでいます。


問い合わせをするにしても、結構予約語があって
ANDとかNOTとかいう単語を入れるとSQLエラーになっちゃいます。


アプリケーションの中に辞書を作って
NGワードが来たら見なかった振りをするようにしようかしら、
と思っていたのですが、さすが商用RDBMS


contains(列名, '{比較対象文字列}') > 0

でよしなにしてくれるようです。
ただ、比較対象文字列に「}」があるとSQLエラーになるので
「}}」のようにエスケープしてやらないといけません。
その辺、PreparedStatement使ったら自動的にやってくれるんでしょうか?
(SQL文から判断してというのはちょっと考えにくい)*1

インデックス再構築や問い合わせ自体のレスポンスとか
検証しなければならないのですが、きっとOracle様なのでそれなりの
結果を出して下さるでしょう。


今日は人と話さずコードを書く日でした。たまにはそんな日があっても良いなぁ。[[]]

*1:まぁ、このプロジェクトでは、(私が)初めてのS2DAOで頑張ってみます。