問合せの結果を保存せずに、問合せの定義を格納するには、CTX_QUERY.STORE_SQE
プロシージャを使用できます。CONTAINS
のSQL演算子によって、その問合せの定義を参照します。このように、ストアド・クエリー式を使用すると、長い問合せ式や使用頻度の高い問合せ式を簡単に定義できます。
ストアド・クエリー式は索引に連結されません。CTX_QUERY.STORE_SQE
をコールする場合、指定するのはストアド・クエリー式の名前と問合せ式のみです。
問合せの定義は、テキスト・データ・ディクショナリに格納されます。ストアド・クエリー式は、すべてのユーザーが参照できます。
次の例では、disasterというストアド・クエリー式を作成します。この式は、tornado、hurricaneまたはearthquakeのいずれかのワードを含むドキュメントを検索します。
begin ctx_query.store_sqe('disaster', 'tornado | hurricane | earthquake'); end;
この問合せを1つの式で実行するには、次のように問合せを記述します。
SELECT SCORE(1), title from news WHERE CONTAINS(text, 'SQE(disaster)', 1) > 0 ORDER BY SCORE(1);