you can do it like this:
sql>begin
ctx_ddl.drop_preference('chinese_lexer');
ctx_ddl.create_preference('chinese_lexer','chinese_vgram_lexer');
end;
/
PL/SQL procedure successfully completed
sql>begin
ctx_ddl.drop_preference('mywordlist');
ctx_ddl.create_preference('mywordlist', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('mywordlist','PREFIX_INDEX','TRUE');
ctx_ddl.set_attribute('mywordlist','SUBSTRING_INDEX', 'YES');
end;
/
PL/SQL procedure successfully completed
SQL> create table te(id int,name varchar2(1000));
Table created
SQL> insert into te values(1,'天鹅湖舞曲(二)');
1 row inserted
SQL> create index te_indx on te(name) indextype is ctxsys.ctxcat parameters('lexer chinese_lexer wordlist mywordlist');
Index created
SQL> select * from te where catsearch(name,'天鹅',null)>0;
ID NAME
--------------------------------------- --------------------------------------------------------------------------------
1 天鹅湖舞曲(二)
SQL> select * from te where catsearch(name,'天',null)>0;
ID NAME
--------------------------------------- --------------------------------------------------------------------------------
1 天鹅湖舞曲(二)
SQL> select * from te where catsearch(name,'天鹅湖',null)>0;
ID NAME
--------------------------------------- --------------------------------------------------------------------------------
1 天鹅湖舞曲(二)
it is done.