Creating a Classification Application

The following example shows how to classify documents by using myuser with the CTXAPP role. You define simple categories, create a CTXRULE index, and use MATCHES.

  1. Connect as the appropriate user.

    Connect as the myuser with CTXAPP role:

    CONNECT myuser;
  2. Create the rule table.

    In this example, you create a table called queries. Each row defines a category with an ID and a rule that is a query string.

    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');
  3. Create your CTXRULE index.

    CREATE INDEX queryx ON queries(query_string) INDEXTYPE IS CTXSYS.CTXRULE;
  4. Classify with MATCHES.

    Use the MATCHES operator in the WHERE clause of a SELECT statement to match documents to queries and then classify the documents.

    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

    As shown, the document string matches categories 1 and 4. With this classification, you can perform an action, such as writing the document to a specific table or emailing a user.

    See Also: Classifying Documents in Oracle Text for more extended classification examples