成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的簡(jiǎn)單例子

數(shù)據(jù)庫(kù) Oracle
本文我們主要介紹了Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的一個(gè)簡(jiǎn)單例子,通過(guò)這個(gè)例子讓我們一起來(lái)了解一下Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的過(guò)程吧,希望能夠?qū)δ兴鶐椭?/div>

Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的簡(jiǎn)單例子是本文我們主要要介紹的內(nèi)容,.NET下用C# 實(shí)現(xiàn)Oracle Text全文檢索的一個(gè)簡(jiǎn)單例子,旨在初步了解Oracle全文檢索的大概步驟,你可以此基礎(chǔ)上擴(kuò)展,進(jìn)行進(jìn)一步的學(xué)習(xí)。希望能夠?qū)δ兴鶐椭?/p>

Oracle全文檢索的步驟如下:

(1) 建表并裝載文本。

(2) 建立索引。如果想配置Oracle索引,可以在建立索引前進(jìn)行配置,如:改變?cè)~法分析器。可以下面SQL語(yǔ)句查看Oracle全文檢索的配置:SELECT * FROM CTX_PREFERENCES;

(3) SQL查詢。

(4) 索引維護(hù):同步與優(yōu)化。

授權(quán)

執(zhí)行全文的用戶必須具有 CTXAPP角色 或 CTXSYS用戶,以及 CTX_DDL包 執(zhí)行權(quán)限。

(1) 用 SYS用戶 授予 SCOTT 用戶 CTXAPP 角色,命令如下:

GRANT CTXAPP TO SCOTT;

(2) 用 CTXSYS 用戶 給 SCOTT 用戶 授權(quán) CTX_DDL 包的執(zhí)行權(quán)限,命令如下:

GRANT EXECUTE ON CTX_DLL TO SCOTT;

創(chuàng)建表、添加記錄和索引

以下的SQL語(yǔ)句和 JOB都在 SCOTT 用戶下執(zhí)行。首先,執(zhí)行以下 SQL 語(yǔ)句,創(chuàng)建表 DOCS,并插入兩條記錄,提交后創(chuàng)建索引 doc_index。

 

  1. DROP TABLE DOCS;  
  2. CREATE TABLE DOCS (  
  3. id NUMBER PRIMARY KEY,  
  4. text VARCHAR2(80)  
  5. );   
  6. INSERT INTO docs VALUES (1,'the first doc');  
  7. INSERT INTO docs VALUES (2,'the second doc');  
  8. COMMIT;   
  9. CREATE INDEX doc_index ON DOCS(text) INDEXTYPE IS CTXSYS.CONTEXT; 

 

然后,執(zhí)行查詢,C#代碼如下:

 

  1. string connStr="Data Source=ora9; uid=scott; pwd=tiger; unicode=true";   
  2. string sqlStr = "SELECT ID FROM DOCS WHERE CONTAINS(TEXT,'%FIRST%')>0";  
  3. OracleDataAdapter da = new OracleDataAdapter(sqlStr, connStr);  
  4. DataTable dt = new DataTable();  
  5. da.Fill(dt);  
  6. Response.Write(dt.Rows[0][0].ToString());  

 

同步和優(yōu)化

當(dāng)表DOCS 發(fā)生變化(插入,刪除)后,索引必須能反應(yīng)這個(gè)變化,這就需要對(duì)索引進(jìn)行同步和優(yōu)化。Oracle提供 ctx server 完成同步和優(yōu)化,也可以用以下的job來(lái)完成。

同步sync

將新的term保存到I表。

 

  1. create or replace procedure sync is  
  2. begin  
  3. execute immediate 'alter index doc_index rebuild online' ||  
  4. ' parameters ( ''sync'' )';  
  5. execute immediate 'alter index doc_index rebuild online' ||  
  6. ' parameters ( ''optimize full maxtime unlimited'' )';  
  7. end sync;  

 

優(yōu)化

清除I表的垃圾,將已經(jīng)被刪除的term從I表刪除。

 

  1. declare  
  2. v_job number;  
  3. begin  
  4. Dbms_Job.Submit  
  5. (  
  6. job => v_job,  
  7. what => 'sync;',  
  8. next_date => sysdate, /* default */  
  9. interval => 'sysdate + 1/720' /* = 1 day / ( 24 hrs * 30 min) = 2 mins */  
  10. );  
  11. Dbms_Job.Run ( v_job );  
  12. end;  

 

其中,I表是 dr$doc_index$i 表。用戶建立索引后,Oracle會(huì)自動(dòng)創(chuàng)建四個(gè)表,dr$doc_index$i、dr$doc_index$k、dr$doc_index$n和dr$doc_index$r。可以用SELECT語(yǔ)句查看此表的內(nèi)容。

說(shuō)明:

(1) 本文是在Oracle 9i和10g環(huán)境下完全實(shí)現(xiàn)Oracle的全文檢索,包括建立表和索引,進(jìn)行同步和優(yōu)化;

(2) 進(jìn)行全文檢索的SQL語(yǔ)句是"SELECT ID FROM DOCS WHERE CONTAINS(TEXT,'%FIRST%')>0";

(3) 其中,">0"是有效的Oracle SQL所必需的,因?yàn)椋琌racle SQL不支持函數(shù)的布爾返回值;

(4) 其中,"CONTAINS(TEXT,'%FIRST%')>0",在Oracle 9i和10g與11g下有所不同;

(5) 最近做項(xiàng)目從Oracle 10g改成11g,在進(jìn)行全文檢索時(shí),Oracle 10g下的代碼,在11g下檢索不到結(jié)果;

(6) 初步認(rèn)為,Oracle 9i和10g與11g的區(qū)別是,在9i和10g下,如果不使用“%”,則是精確檢索,否則是模糊檢索。而在11g下,則完全不用“%”;

(7) 另外,在9i和10g下,可以使用如:CONTAINS(TEXT,'%FIRST% AND %second%')>0,進(jìn)行全文檢索,但在11g下,是不可以的,要分開(kāi)寫(xiě),如:

CONTAINS(TEXT,'%FIRST%')>0 AND CONTAINS(TEXT,'%second%')>0;

(8) 感覺(jué)11g下的全文檢索更好。

以上就是Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的例子的全部?jī)?nèi)容,本文我們就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)PL/SQL快捷鍵設(shè)置詳解
  2. Oracle數(shù)據(jù)庫(kù)學(xué)習(xí)筆記之表的聯(lián)合查詢
  3. 一個(gè)Oracle數(shù)據(jù)庫(kù)執(zhí)行存儲(chǔ)過(guò)程的錯(cuò)誤解決
  4. Oracle數(shù)據(jù)庫(kù)日期范圍搜索的兩種方法簡(jiǎn)介
  5. Oracle數(shù)據(jù)庫(kù)RMAN恢復(fù)之?dāng)?shù)據(jù)文件的恢復(fù)詳解
責(zé)任編輯:趙鵬 來(lái)源: 博客園
相關(guān)推薦

2010-05-04 12:18:43

Oracle Text

2009-03-19 10:24:27

全文檢索文本定位Oracle

2010-11-10 14:18:15

SQL SERVER全

2010-04-19 17:21:36

Oracle寫(xiě)文件

2009-09-11 09:10:30

C#編寫(xiě)游戲

2010-07-08 14:53:38

SQLServer實(shí)現(xiàn)

2011-08-03 10:40:17

SQL Server數(shù)全文檢索

2009-08-13 10:15:50

C#讀取Excel

2009-09-07 15:27:04

C# MessageB

2009-08-14 11:24:10

MySQL全文檢索MySQL Like索

2011-05-13 14:34:31

Oracle全文索引設(shè)置

2009-08-24 18:09:13

C#調(diào)用Oracle數(shù)

2009-08-12 16:37:22

C#變量類型轉(zhuǎn)換

2010-04-13 17:10:59

Oracle Data

2010-04-16 11:22:08

Oracle存儲(chǔ)過(guò)程

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫(kù)

2009-11-19 16:27:23

Oracle Rown

2011-08-02 12:46:46

Oracle數(shù)據(jù)表建立索引

2009-09-02 14:33:57

C#類實(shí)現(xiàn)接口

2009-08-31 17:53:20

C#實(shí)現(xiàn)索引器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久久久不蜜臀 | 欧美在线观看一区二区 | 99久久日韩精品免费热麻豆美女 | 一区二区三区四区在线 | 亚洲香蕉| 激情五月婷婷在线 | 性国产丰满麻豆videosex | 天堂在线91| 日本欧美在线 | 日韩一区二区三区在线看 | 亚洲综合二区 | 亚洲成人精品久久 | 91大神在线资源观看无广告 | 高清免费在线 | 亚洲精品福利视频 | 国产在线一区二区三区 | 成人久久18免费网站图片 | 在线视频一区二区三区 | 中文字幕一区二区三区四区五区 | 91午夜在线 | 亚洲精品视 | 国产精品一区二区三区在线 | 久久久久久色 | 亚洲视频区| 亚洲精品片 | 成人不卡一区二区 | 久久久高清 | 97超碰成人| 久久国产精品无码网站 | 九九久久久久久 | 免费在线视频一区二区 | 欧美激情在线一区二区三区 | 亚洲国产一区二区三区在线观看 | 日韩淫片免费看 | 成人国产在线视频 | 大乳boobs巨大吃奶挤奶 | 国产在线精品一区二区 | 射欧美 | aacc678成免费人电影网站 | 日韩欧美中文字幕在线视频 | 99热这里只有精品8 激情毛片 |