次の例では、CTXAPPロールを持つmyuserユーザーによる簡単なカテゴリの定義、CTXRULE索引の作成、およびMATCHESの使用について説明します。
CTXAPPロールを持つmyuserユーザーとして接続します。
CONNECT myuser;
ルール表を作成して、問合せルールを移入する必要があります。この例では、queriesという表を作成します。各行で、IDを持つカテゴリ、および問合せ文字列で構成されたルールを定義します。
CREATE TABLE queries (
query_id NUMBER,
query_string VARCHAR2(80)
);
INSERT INTO queries VALUES (1, 'oracle');
INSERT INTO queries VALUES (2, 'larry or ellison');
INSERT INTO queries VALUES (3, 'oracle and text');
INSERT INTO queries VALUES (4, 'market share');
次のように、CTXRULE索引を作成します。
CREATE INDEX queryx ON queries(query_string) INDEXTYPE IS CTXSYS.CTXRULE;
SELECT文のWHERE句でMATCHES演算子を使用して、ドキュメントを問合せと照合し、分類します。
COLUMN query_string FORMAT a35;
SELECT query_id,query_string FROM queries
WHERE MATCHES(query_string,
'Oracle announced that its market share in databases
increased over the last year.')>0;
QUERY_ID QUERY_STRING
---------- -----------------------------------
1 oracle
4 market share
前述のように、ドキュメント文字列はカテゴリ1および4と一致します。この分類では、特定の表へのドキュメントの書込みや、ユーザーへの電子メール送信などのアクションを実行できます。