信息来源: IT168
在Oracle 8.0.x 中称为ConText ;在Oracle8i 中称为interMedia Text ;Oracle9i 中称为Oracle Text。
Oracle Text 的应用领域有很多:
搜索文本:需要快捷有效搜索文本数据的应用程序
管理多种文档:允许搜索各种混和文档格式的应用程序,包括ord,excel,lotus 等
从多种数据源中检索文本:不仅来自Oracle 数据库中的文本数据,而且可以来自Internet和文件系统的文本数据
搜索XML 应用程序
connect scott / tiger
insert into dept (deptno,dname,loc) values ( ' 50 ' , ' 公安软件事业部 ' , ' 四楼 ' );
insert into dept (deptno,dname,loc) values ( ' 60 ' , ' 社保软件事业部 ' , ' 三楼 ' );
insert into dept (deptno,dname,loc) values ( ' 70 ' , ' 人事部 ' , ' 二楼 ' );
insert into dept (deptno,dname,loc) values ( ' 80 ' , ' 系统集成部 ' , ' 一楼 ' );
commit ;
SELECT * FROM dept WHERE INSTR (dname, ' 软件 ' ) > 0 ;
SELECT * FROM dept WHERE dname LIKE ' %软件% ' ;
connect ctxsys / ctxsys
BEGIN
-- 设置词法分析器
ctx_ddl.create_preference ( ' my_lexer ' , ' chinese_vgram_lexer ' );
-- 设置储存参数
ctx_ddl.create_preference ( ' mystore ' , ' BASIC_STORAGE ' );
ctx_ddl.set_attribute ( ' mystore ' , ' I_TABLE_CLAUSE ' , ' tablespace indx ' );
ctx_ddl.set_attribute ( ' mystore ' , ' I_INDEX_CLAUSE ' , ' tablespace indx compress 2 ' );
END ;
connect scott / tiger
CREATE INDEX ind_dept_dname
ON dept( dname )
INDEXTYPE is CTXSYS.CONTEXT
parameters( ' lexer ctxsys.my_lexer storage ctxsys.mystore ' );
SELECT * FROM dept WHERE contains (dname, ' 软件 ' ) > 0 ;
SELECT * FROM dept WHERE contains (dname, ' 软件 or 集成 ' ) > 0 ;
-- 按分值排序
SELECT score ( 1 ), a. * FROM dept a WHERE contains (dname, ' 公安 or 软件 or 事 ' , 1 ) > 0
ORDER BY score ( 1 ) DESC ;
CREATE INDEX [ schema. ] index on [ schema. ] table ( column ) INDEXTYPE
IS ctxsys.context [ ONLINE ]
LOCAL [ (PARTITION [partition ] [ PARAMETERS('paramstring') ]
[ , PARTITION [partition ] [ PARAMETERS('paramstring') ] ])]
[ PARAMETERS(paramstring) ] [ PARALLEL n ] [ UNUSABLE ] ;
EXEC ctx_ddl.create_preference( ' mymds ' , ' MULTI_COLUMN_DATASTORE ' );
EXEC ctx_ddl.set_attribute( ' mymds ' , ' columns ' , ' dname, loc ' );
CREATE INDEX SCOTT.IND_DEPT_DNAME
ON SCOTT.DEPT(DNAME) INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS ( ' DATASTORE CTXSYS.MYMDS LEXER SCOTT.MY_LEXER ' );
SELECT *
FROM dept
WHERE contains (dname, ' 人事 or 四楼 ' ) > 0 ;
ctx_ddl.sync_index(
idx_name IN VARCHAR2 DEFAULT NULL
memory IN VARCHAR2 DEFAULT NULL ,
part_name IN VARCHAR2 DEFAULT NULL
parallel_degree IN NUMBER DEFAULT 1 );
insert into dept (deptno,dname,loc) values ( ' 71 ' , ' 销售部 ' , ' 二楼 ' );
BEGIN
ctx_ddl.sync_index ( ' ind_dept_dname ' , ' 2M ' );
END ;
BEGIN
ctx_ddl.optimize_index ( ' ind_dept_dname ' , ' full ' );
END ;
VARIABLE jobno number ;
BEGIN
DBMS_JOB.SUBMIT(:jobno, ' ctx_ddl.sync_index( '' ind_dept_dname '' ); ' ,SYSDATE, ' SYSDATE + (1/24/4) ' );
commit ;
END ;
VARIABLE jobno number ;
BEGIN
DBMS_JOB.SUBMIT(:jobno, ' ctx_ddl.optimize_index( '' ind_dept_dname '' , '' FULL '' ); ' ,SYSDATE, ' SYSDATE + 1 ' );
commit ;
END ;