I have earlier provided simple demonstrations of CONTEXT and CTXCAT Indexes.
A CTXRULE Index can be used to build a Document Classification application. This involves indexing a table of "queries" that define the classification. Queries use the MATCHES clause.
(Note : Like the CONTEXT Index, a call to SYNC_INDEX is required before the rows are indexed).
Note that the query predicates are divided by the OR. They are NOT listed in Alphabetical order.
Now, I test a few queries :
Note that, since Kohli is not in the Players list, the last query doesn't return the Classification "Players".
.
.
.
A CTXRULE Index can be used to build a Document Classification application. This involves indexing a table of "queries" that define the classification. Queries use the MATCHES clause.
(Note : Like the CONTEXT Index, a call to SYNC_INDEX is required before the rows are indexed).
SQL> create table common_query_classes 2 (classification varchar2(64), 3 query_text varchar2(4000)); Table created. SQL> create index query_class_index 2 on common_query_classes (query_text) 3 indextype is ctxsys.ctxrule 4 / Index created. SQL> SQL> insert into common_query_classes 2 values ('Players','Gavaskar OR Tendulkar OR Chappell OR Imran OR Botham'); 1 row created. SQL> insert into common_query_classes 2 values ('Grounds','Brabourne OR Wankhede OR Lords'); 1 row created. SQL> commit; Commit complete. SQL>
Note that the query predicates are divided by the OR. They are NOT listed in Alphabetical order.
Now, I test a few queries :
SQL> exec ctx_ddl.sync_index('QUERY_CLASS_INDEX'); PL/SQL procedure successfully completed. SQL> SQL> select classification 2 from common_query_classes 3 where MATCHES (query_text,'Tendulkar is a Player at Brabourne') > 0 4 / CLASSIFICATION ---------------------------------------------------------------- Grounds Players SQL> SQL> select classification 2 from common_query_classes 3 where MATCHES (query_text,'Botham') > 0 4 / CLASSIFICATION ---------------------------------------------------------------- Players SQL> select classification 2 from common_query_classes 3 where MATCHES (query_text, 'Kohli is a Player at Wankhede') > 0 4 / CLASSIFICATION ---------------------------------------------------------------- Grounds SQL>
Note that, since Kohli is not in the Players list, the last query doesn't return the Classification "Players".
.
.
.