--查看DB中是否存在CTXSYS用戶
select * from all_users where username='CTXSYS'
--查詢CTXSYS具有的角色,是否包含CTXAPP角色
select grantee,granted_role from dba_role_privs where grantee='CTXSYS'
--激活CTXSYS用戶
alter user CTXSYS account unlock
--創建測試用戶TEXTTEST
create user TEXTTEST identified by TEXTTEST
--修改CTXSYS密碼
alter user CTXSYS identified by CTXSYS
--授權
GRANT resource, CONNECT, ctxapp TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_cls TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_ddl TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_doc TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_output TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_query TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_report TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_thes TO TEXTTEST
GRANT EXECUTE ON ctxsys.ctx_ulexer TO TEXTTEST
--設置詞法分析器
BEGIN
ctx_ddl.create_preference ('my_lexer1', 'chinese_vgram_lexer');
END;
--查看系統或設置的oracle text參數
SELECT pre_name, pre_object FROM ctx_preferences
--新建測試表
create table TEXT_SEARCH(
id NUMBER NOT NULL PRIMARY KEY,
ABSTRACT varchar2(2000));
--插入資料
insert into TEXT_SEARCH values(1,'《HTML5高级程序设计》首先介绍了HTML5的历史背景、新的语义标签及与以往HTML版本相比的根本变化,同时揭示了HTML5背后的设计原理。从第2章起,分别围绕构建令人神往的富Web应用,逐一讨论了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、Web Workers、Storage等API的使用,辅以直观明了的客户端和服务器端示例代码,让开发人员能够迅速理解和掌握新一代Web标准所涵盖的核心技术。《HTML5高级程序设计》最后探索了离线Web应用并展望了HTML5未来的发展前景。 《HTML5高级程序设计》面向有一定经验的Web应用开发人员,对HTML5及未来Web应用技术发展抱有浓厚兴趣的读者也可以学习参考。');
insert into TEXT_SEARCH values(2,'《软件架构师应该知道的97件事》是本与众不同的技术图书。五十多位作者中不乏像尼尔¡¤福特(Neal Ford)、迈克尔¡¤尼加德(Michael Nygard)、比尔¡¤德¡¤霍拉(Bill de h6ra)这样杰出的软件架构师,大家分享了多年积累的开发经验和工作准则.内容不限于单纯的技术范畴.还涉及如何与各方沟通、如何降低项目的复杂度、怎样强化开发团队等。');
--SQL> start D:\app\Milo\product\11.2.0\dbhome_1\ctx\admin\defaults\drdefus.sql;
--創建全文索引
CREATE INDEX demo_abstract ON TEXT_SEARCH(ABSTRACT) indextype IS ctxsys.context parameters('lexer my_lexer1');
--查看索引建立是否出錯。
SELECT * FROM ctx_USER_index_errors
--基本測試
SELECT t.* FROM TEXT_SEARCH t WHERE contains(ABSTRACT,'HTML5高级程序设计')>0;
--OR 測試
SELECT t.* FROM TEXT_SEARCH t WHERE contains(ABSTRACT,'HTML5高级程序设计 or 不同的技术图书')>0;
--AND 測試
SELECT t.* FROM TEXT_SEARCH t WHERE contains(ABSTRACT,'HTML5高级程序设计 and 历史背景')>0;