执行查询
SQL> select * from docs where contains(address,'朝阳区')>0;
ID NAME ADDRESS
---------- -------------------------------- --------------------------------------------------
16 张三 中国北京朝阳区北小营亚运花园1号楼8B
SQL> select * from docs where contains(address,'朝阳区|成都')>0;
ID NAME ADDRESS
---------- -------------------------------- -----------------------------------------------
16 张三 中国北京朝阳区北小营亚运花园1号楼8B
18 王五 四川成都经济技术开发区世纪大道515号
索引同步
insert into docs values(19,'赵六','九龙旺角山东街409号荣华大厦');
commit;
SQL> select * from docs where contains(address,'旺角')>0;
未选定行
SQL> exec ctx_ddl.sync_index('idx_docs_address');
SQL> select * from docs where contains(address,'旺角')>0;
ID NAME ADDRESS
---------- ------------------ --------------------------------
19 赵六 九龙旺角山东街409号荣华大厦
创建同步job
CREATE or replace procedure cont_sync_index as
BEGIN
ctx_ddl.sync_index('idx_docs_address');
END;
/
VARIABLE jobno number;
BEGIN
DBMS_JOB.SUBMIT(:jobno,'cont_sync_index();',
SYSDATE, 'SYSDATE + (1/24/4)');
commit;
END;
/
经常的索引同步将会导致CONTEXT索引产生碎片,索引碎片严重的影响了查询的反应速度。你可以定期优化索引来减少碎片,减少索引大 小,提高查询效率。创建索引优化job:
CREATE or replace procedure cont_optimize_index as
BEGIN
ctx_ddl.optimize_index('idx_aritcle_content','FULL');
END;
/
VARIABLE jobno number;
BEGIN
DBMS_JOB.SUBMIT(:jobno,'cont_optimize_index();',
SYSDATE, 'SYSDATE + 1');
commit;
END;
/