時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
本文簡要說明全文檢索功能的使用,不做太多的具體說明。
僅供參考使用方法。
1.授權(quán)
對具體使用全文檢索的用戶授權(quán).
$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Sun May 15 20:00:10 2005
Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> grant ctxapp to club;
Grant succeeded.
SQL> connect ctxsys/password
Connected.
SQL> grant execute on ctx_ddl to club;
Grant succeeded.
2.使用應用用戶連接
創(chuàng)建域索引
SQL> connect club/password
Connected.
SQL> begin ctx_ddl.create_preference('club_lexer','chinese_vgram_lexer'); end;
2? /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.03
SQL> create index id_cont_msg
2? on jivemessage ( SUBJECT ) indextype is ctxsys.context parameters('lexer club_lexer');
Index created.
Elapsed: 00:01:22.42
SQL> select count(*) from jivemessage where contains(subject,'幸福')>0;
COUNT(*)
----------
1847
Elapsed: 00:00:00.17
SQL> select count(*) from jivemessage where subject like '%幸福%';
COUNT(*)
----------
1841
Elapsed: 00:00:02.89
3.檢索比較
以下是一個全文檢索的示例,我們檢索'abc',那么全文檢索可以把包含'abc'的任何變化組合都查詢出來,包括大小寫、全半角,而如果用單純的SQL實現(xiàn)同樣的結(jié)果,則需要多次like之后union all,其性能差距是不可想象的。
全文檢索在類似文本模糊查詢上具有極大的優(yōu)勢。當然也可能存在問題,即詞法分析器是否準確,會否漏掉部分內(nèi)容等。
總的說來,滿足需求的技術就是好的技術,是否使用一項技術應該通過實踐來檢驗.
SQL> select subject from jivemessage where contains(subject,'abc') >0;
SUBJECT
--------------------------------------------------------------------------------
【游戲】 把你的名字的首字母用智能ABC打出,看能出來什么?
游戲——把你的名字首字母用智能ABC打出來
智能ABC暗藏殺機
ABC
ABC
ABC
ABC
ABC
ABC
哈哇abc
abc
SUBJECT
--------------------------------------------------------------------------------
abc
ABC
振奮愛的激情方案ABC
智能ABC的錯嗎?
ABC全選
瓜果美容ABC
經(jīng)典英文歌曲ABC,不好你拿版磚砍我,好就回帖頂一下!
初夜abc
Re: abc
Re: abc
Re: abc
SUBJECT
--------------------------------------------------------------------------------
abc
測試發(fā)貼""abc
abc
25 rows selected.
Elapsed: 00:00:00.04
3.定時優(yōu)化同步域索引
創(chuàng)建定時任務,定期優(yōu)化和同步域索引
SQL> create or replace procedure hsp_sync_index as
2? begin
3? ctx_ddl.sync_index('id_cont_msg');
4? end;
5? /
Procedure created.
Elapsed: 00:00:00.08
SQL> VARIABLE jobno number;
SQL> BEGIN
2 DBMS_JOB.SUBMIT(:jobno,'hsp_sync_index();',
3 SYSDATE, 'SYSDATE + (1/24/4)');
4 commit;
5 END;
6 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.27
SQL> create or replace procedure hsp_optimize_index as
2? begin
3? ctx_ddl.optimize_index('id_cont_msg','FULL');
4? end;
5? /
SQL> VARIABLE jobno number;
SQL> BEGIN
2 DBMS_JOB.SUBMIT(:jobno,'hsp_optimize_index();',
3 SYSDATE, 'SYSDATE + 1');
4 commit;
5 END;
6 /
Procedure created.
Elapsed: 00:00:00.03
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.02
SQL>
關鍵詞標簽:oracle全文檢索
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法