4.7 CTXRULE索引の作成
ドキュメント分類アプリケーションを作成するには、表または問合せにCTXRULE索引を使用します。着信ドキュメントのストリームがコンテンツで分類されると、問合せによりカテゴリが定義されます。単一ドキュメントの分類には、MATCHES演算子を使用できます。
               
CTXRULE索引および単純なドキュメント分類アプリケーションを作成するには、次の手順に従います。
               
- 
                     問合せの表を作成します。 カテゴリ名および問合せテキストを保持する myqueries表を作成し、この表に分類と各分類を定義する問合せを移入します。CREATE TABLE myqueries ( queryid NUMBER PRIMARY KEY, category VARCHAR2(30), query VARCHAR2(2000) ); たとえば、主題US Politics、MusicおよびSoccerの分類を考えてみます。 INSERT INTO myqueries VALUES(1, 'US Politics', 'democrat or republican'); INSERT INTO myqueries VALUES(2, 'Music', 'ABOUT(music)'); INSERT INTO myqueries VALUES(3, 'Soccer', 'ABOUT(soccer)'); ヒント: ルール(または問合せ)の表の生成には、 CTX_CLS.TRAINプロシージャも使用できます。このプロシージャは入力としてドキュメント・トレーニング・セットを取ります。
- 
                     CTXRULE索引を作成します。CREATE INDEX文を使用してCTXRULE索引を作成し、必要に応じてレクサー、記憶域、セクション・グループおよびワードリストの各パラメータを指定します。CREATE INDEX myruleindex ON myqueries(query) INDEXTYPE IS CTXRULE PARAMETERS ('lexer lexer_pref storage storage_pref section group section_pref wordlist wordlist_pref');
- 
                     ドキュメントを分類します。 MATCHES演算子を使用してドキュメントを分類します。着信ドキュメントは表 newsに格納されるとします。CREATE TABLE news ( newsid NUMBER, author VARCHAR2(30), source VARCHAR2(30), article CLOB); 必要に応じて、 MATCHESで「BEFORE INSERT」トリガーを作成して、各ドキュメントをそれぞれの分類に基づいて別の表news_routeにルーティングします。BEGIN -- find matching queries FOR c1 IN (select category from myqueries where MATCHES(query, :new.article)>0) LOOP INSERT INTO news_route(newsid, category) VALUES (:new.newsid, c1.category); END LOOP; END;
関連項目:
- 
                        ドキュメントの分類および CTXRULE索引の詳細は、「Oracle Textでのドキュメントの分類」を参照してください