私は Web アプリを設計しており、全文検索を実行できる検索ページがあります (関心のあるテキスト列に CONTEXT インデックスを作成しました)。Oracleでは、全文検索を実行して結果を返すCONTAINS クエリを実行できます。これは、次のような予約文字を入力する場合を除いて、優れています。
「氷* AND 場所 AND アラスカ」
「ice」の後に「*」を置くと、Oracle エラーが発生します。つまり、
ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
これを回避する最も適切な方法は何ですか - 予約文字とキーワードを除外できることは知っていますが、もっとエレガントな方法があると思います。あなたがそのようなことを知っているなら、私は本当に知りたいです:-)
注: 以下は、Oracle テキスト検索を実行するコードです。目を見張るものはありません。
OracleCommand cmd = new OracleCommand("SELECT ref_id, title, table_name, description FROM v_all_media WHERE CONTAINS (title, :pTitle) > 0", conn);
cmd.Parameters.Add("pTitle", title);
OracleDataReader reader = cmd.ExecuteReader();