oracle text メモ


Oracle Text 

Oracle Text を使用すると長い文章の途中の文字列を検索するような場合でも
索引を使用することができる。

CTXAPPロールの付与
SQL> connect ctxsys
SQL> grant ctxapp to ユーザ名; 


プリファレンス作成

日本語のテキストからトークンを抽出するには、
レクサーにJAPANESE_VGRAM_LEXERまたは、JAPANESE_LEXERを指定します。

BEGIN
ctx_ddl.create_preference('プリファレンス名', 'JAPANESE_LEXER');
END;


索引の作成
CREATE INDEX 索引 ON 表(列)
INDEXTYPE IS ctxsys.context
PARAMETERS('lexer プリファレンス名');

再作成 
SQL> ALTER INDEX 索引 REBUILD;




索引が作成されると、索引表という表が作成されます。
索引表の名前は、DR$索引名$% となります。

SQL> select table_name from user_tables
  2  where table_name like 'DR$索引名$%';


SQL> select token_text from DR$索引名$I;




検索
SELECT * FROM テーブル名
WHERE CONTAINS (列名, '検索文字列') > 0;



索引の同期化

BEGIN
ctx_ddl.sync_index('索引名');
END;



索引の最適化

BEGIN
    CTX_DDL.OPTIMIZE_INDEX('索引名','FULL');
END;

第二引数に次のいずれかを指定します。
・完全(FULL)
・高速(FAST)
・トークン(TOKEN)
 



[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送