日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用OracleText如何進(jìn)行全文的檢索

以下的文章主要是介紹如何正確的使用Oracle Text來進(jìn)行全文的檢索,因?yàn)橄到y(tǒng)中相關(guān)的數(shù)據(jù)的增多,所以原用的like語法進(jìn)行查詢法律全文而變的緩慢,因此在原有系統(tǒng)中增加了全文檢索的功能。

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)西云機(jī)房的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。

全文檢索功能依賴于Oracle Text。首先保證Oracle Text組件在數(shù)據(jù)庫中已安裝。然后建立索引

Sql代碼

法律全文內(nèi)容字段增加索引

 
 
 
  1. create index idx_flqw_nr on flqw(nr) indextype is ctxsys.context;

法律條款字段增加索引

 
 
 
  1. create index idx_fltk_nr on fltk(nr) indextype is ctxsys.context;

由于Oracle Text使用的ctxsys.context類型索引不會自動維護(hù),因些需要定時進(jìn)行更新索引并進(jìn)行索引優(yōu)化,索引優(yōu)化的次數(shù)要稍微少些。

Sql代碼

更新索引

 
 
 
  1. exec ctx_ddl.sync_index('idx_flqw_nr');
  2. exec ctx_ddl.sync_index('idx_fltk_nr');

優(yōu)化索引

 
 
 
  1. exec ctx_ddl.optimize_index('idx_flqw_nr','full');
  2. exec ctx_ddl.optimize_index('idx_fltk_nr','full');

也可以將更新索引及優(yōu)化寫成job,這樣可以定時運(yùn)行,該job要與用戶建立在同一個目錄下。

先創(chuàng)建相對應(yīng)的存儲過程。

Sql代碼

給flyy用戶賦予在存儲過程中執(zhí)行全文索引的權(quán)限

 
 
 
  1. GRANT EXECUTE ANY PROCEDURE TO flyy;

更新索引的存儲過程

 
 
 
  1. CREATE OR REPLACE PROCEDURE flyy.sync_index
  2. AS
  3. BEGIN
  4. ctxsys.ctx_ddl.sync_index ('idx_flqw_nr');
  5. ctxsys.ctx_ddl.sync_index ('idx_fltk_nr');

END;

優(yōu)化索引的存儲過程

 
 
 
  1. CREATE OR REPLACE PROCEDURE flyy.optimize_index
  2. AS
  3. BEGIN
  4. ctx_ddl.optimize_index ('idx_flqw_nr', 'full');
  5. ctx_ddl.optimize_index ('idx_fltk_nr', 'full');
  6. END;

創(chuàng)建定時job。

Sql代碼

更新索引,每15分鐘一次

 
 
 
  1. VARIABLE job1 number;
  2. BEGIN
  3. DBMS_JOB.submit (:job1, 'sync_index;', SYSDATE, 'sysdate+1/24/4');
  4. END;

優(yōu)化索引,一天運(yùn)行一次

經(jīng)測試,優(yōu)化索引可能導(dǎo)致死鎖,優(yōu)化索引***手工運(yùn)行,慎用!

 
 
 
  1. VARIABLE job1 number;
  2. BEGIN
  3. DBMS_JOB.submit (:job1, 'optimize_index;', SYSDATE, 'sysdate+1');
  4. END;

執(zhí)行以上job,并查詢job對應(yīng)job號。

Sql代碼

查找對應(yīng)的JOB

 
 
 
  1. SELECT job, schema_user, INTERVAL, what FROM user_jobs;

根據(jù)查詢出來的結(jié)果啟動job。

Sql代碼

啟動job

 
 
 
  1. EXEC dbms_job.run(41); 

是上面查詢出來的job號。


網(wǎng)站欄目:使用OracleText如何進(jìn)行全文的檢索
分享鏈接:http://www.5511xx.com/article/ccdcjje.html