婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle 如何創建和使用全文索引

Oracle 如何創建和使用全文索引

熱門標簽:哪個400外呼系統好 山東crm外呼系統軟件 愛客外呼系統怎么樣 圖吧網站地圖標注 慧營銷crm外呼系統丹丹 開發外呼系統 哈爾濱電話機器人銷售招聘 百度地圖標注途經點 地圖標注養老院

不使用Oracle text功能,也有很多方法可以在Oracle數據庫中搜索文本.可以使用標準的INSTR函數和LIKE操作符實現。

SELECT *FROM mytext WHERE INSTR (thetext, 'Oracle') > 0;

SELECT * FROM mytext WHERE thetext LIKE '%Oracle%';

  有很多時候,使用instr和like是很理想的, 特別是搜索僅跨越很小的表的時候.然而通過這些文本定位的方法將導致全表掃描,對資源來說消耗比較昂貴,而且實現的搜索功能也非常有限,因此對海量的文本數據進行搜索時,建議使用oralce提供的全文檢索功能 建立全文檢索的步驟步驟一 檢查和設置數據庫角色首先檢查數據庫中是否有CTXSYS用戶和CTXAPP腳色。如果沒有這個用戶和角色,意味著你的數據庫創建時未安裝intermedia功能。你必須修改數據庫以安裝這項功能。 默認安裝情況下,ctxsys用戶是被鎖定的,因此要先啟用ctxsys的用戶。 步驟二 賦權 在ctxsys用戶下把ctx_ddl的執行權限賦于要使用全文索引的用戶,例:

grant execute on ctx_ddl to pomoho;

一、設置詞法分析器

  Oracle實現全文檢索,其機制其實很簡單。即通過Oracle專利的詞法分析器(lexer),將文章中所有的表意單元(Oracle稱為term)找出來,記錄在一組以dr$開頭的表中,同時記下該term出現的位置、次數、hash值等信息。檢索時,Oracle從這組表中查找相應的term,并計算其出現頻率,根據某個算法來計算每個文檔的得分(score),即所謂的‘匹配率'。而lexer則是該機制的核心,它決定了全文檢索的效率。Oracle針對不同的語言提供了不同的lexer,而我們通常能用到其中的三個:

  basic_lexer:針對英語。它能根據空格和標點來將英語單詞從句子中分離,還能自動將一些出現頻率過高已經失去檢索意義的單詞作為‘垃圾'處理,如if , is等,具有較高的處理效率。但該lexer應用于漢語則有很多問題,由于它只認空格和標點,而漢語的一句話中通常不會有空格,因此,它會把整句話作為一個term,事實上失去檢索能力。以‘中國人民站起來了'這句話為例,basic_lexer分析的結果只有一個term ,就是‘中國人民站起來了'。此時若檢索‘中國',將檢索不到內容。

  chinese_vgram_lexer:專門的漢語分析器,支持所有漢字字符集(ZHS16CGB231280ZHS16GBKZHT32EUCZHT16BIG5ZHT32TRISZHT16MSWIN950ZHT16HKSCSUTF8)。該分析器按字為單元來分析漢語句子?!袊嗣裾酒饋砹?這句話,會被它分析成如下幾個term: ‘中',‘中國',‘國人',‘人民',‘民站',‘站起',起來',‘來了',‘了'。可以看出,這種分析方法,實現算法很簡單,并且能實現‘一網打盡',但效率則是差強人意。

  chinese_lexer:這是一個新的漢語分析器,只支持utf8字符集。上面已經看到,chinese vgram lexer這個分析器由于不認識常用的漢語詞匯,因此分析的單元非常機械,像上面的‘民站',‘站起'在漢語中根本不會單獨出現,因此這種term是沒有意義的,反而影響效率。chinese_lexer的最大改進就是該分析器能認識大部分常用漢語詞匯,因此能更有效率地分析句子,像以上兩個愚蠢的單元將不會再出現,極大提高了效率。但是它只支持utf8,如果你的數據庫是zhs16gbk字符集,則只能使用笨笨的那個Chinese vgram lexer.
如果不做任何設置,Oracle缺省使用basic_lexer這個分析器。要指定使用哪一個lexer,可以這樣操作:

BEGIN
 ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer');
END;
/

其中my_lexer是分析器名。

二、建立全文索引

在建立intermedia索引時,指明所用的lexer:

CREATE INDEX  myindex ON mytable(mycolumn) indextype is ctxsys.context parameters('lexer my_lexer');

※個人體會:全文索引建立后,用pl/sql developer工具view table,在index這一欄是看不到索引信息的。

而本人在刪除全文索引時遇到過一下報錯:

SQL> drop index searchkeytbl_key;
drop index searchkeytbl_key
ORA-29868: cannot issue DDL on a domain index marked as LOADING

解決方法:

ORA-29868: cannot issue DDL on a domain index marked as LOADING
說明:在創建索引的時候斷開、重啟等導致索引中斷沒有執行成功,之后再drop或者rebuild等操作的時候都會報此錯誤
解決:只能drop index ind_name force強行刪除,然后再重建

三、索引同步維護

用以下的兩個job來完成(該job要建在和表同一個用戶下) :

VARIABLE jobno number;
BEGIN
DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''index_name'');',
SYSDATE, 'SYSDATE + (1/24/4)');
commit;
END;      //同步
 
VARIABLE jobno number;
BEGIN
DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''myindex'',''FULL'');',
SYSDATE, 'SYSDATE + 1');
commit;     //優化

建完后手動運行下:

exec dbms_job.run(jobno);

※個人體會:運行job可能會有問題,此時可以單獨運行索引,嘗試一下

exec ctx_ddl.sync_index('index_name');

如果單獨運行沒有問題,則檢查job是否寫錯或者當前操作的oracle數據庫用戶有無運行存儲過程的權限

SQL> exec dbms_job.run(190);
begin dbms_job.run(190); end;

ORA-12011: execution of 1 jobs failed
ORA-06512: at "SYS.DBMS_IJOB", line 406
ORA-06512: at "SYS.DBMS_JOB", line 272
ORA-06512: at line 1

以上報錯就是用戶沒有運行任何存儲過程造成的,此時需要對用戶加上這個權限:

SQL> grant execute any procedure to oracle_username;

再看一下job的情況

select * from user_jobs;

四、測試

關聯查詢: select * from table_name where contains (column_name,'keyword') >0;
SQL> select * from searchkeytbl where type='城市' and contains (key,'楊浦') >0;

USERNAME             TYPE                                     KEY
-------------------- ---------------------------------------- --------------------------------------------------------------------------------
mujian80             城市                                     上海市楊浦區

五、問題

加全文索引遇到的問題(不斷更新)

SQL> create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters('lexer gh_ghname_lexer');
create index gh_ghname_idx on gh(ghname) indextype is ctxsys.context parameters('lexer gh_ghname_lexer')

ORA-24795: Illegal COMMIT attempt made
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvddl.IndexCreate
ORA-20000: Oracle Text error:
DRG-50857: oracle error in drvdml.MaintainKTab
ORA-24795: Illegal COMMIT attempt made
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
To avoid the error, please use one of the following solutions

1. Don't use a 32k-blocksized tablespace to store the internal index objects
- or -
2. Download Patch 5596325 from Metalink and apply it as described in the README file.

看一下 可能是用于創建索引的表空間不夠了

reports——>DBA——>total free space   pl/sql developer工具,查看表空間的剩余空間
select * from v$datafile;              查看數據文件信息

您可能感興趣的文章:
  • Oracle數據庫中建立索引的基本方法講解
  • Oracle輕松取得建表和索引的DDL語句
  • Oracle中如何把表和索引放在不同的表空間里
  • oracle索引介紹(圖文詳解)
  • Oracle關于重建索引爭論的總結
  • Oracle使用強制索引的方法與注意事項
  • Oracle索引(B*tree與Bitmap)的學習總結
  • oracle 索引不能使用深入解析
  • Oracle Index索引無效的原因與解決方法
  • oracle索引的測試實例代碼

標簽:和田 青島 固原 承德 周口 開封 甘肅 武漢

巨人網絡通訊聲明:本文標題《Oracle 如何創建和使用全文索引》,本文關鍵詞  Oracle,如何,創,建和,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 如何創建和使用全文索引》相關的同類信息!
  • 本頁收集關于Oracle 如何創建和使用全文索引的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩一区国产二区欧美三区| 亚洲视频1区2区| 日产欧产美韩系列久久99| 久久久久97国产精华液好用吗| 色综合久久久久久久久| 国产在线麻豆精品观看| 日本sm残虐另类| 亚洲福利国产精品| 亚洲色欲色欲www在线观看| 国产三区在线成人av| 日韩精品综合一本久道在线视频| 欧美亚洲禁片免费| 色综合久久中文综合久久97| 成人av资源站| 99久久精品久久久久久清纯| 成人午夜视频在线| 成人一区二区三区在线观看| 国产中文字幕精品| 99vv1com这只有精品| 成人爱爱电影网址| 成人国产精品免费观看动漫| 高清日韩电视剧大全免费| 国产精品综合二区| 成人精品视频网站| jvid福利写真一区二区三区| av不卡一区二区三区| 91麻豆福利精品推荐| 色欧美88888久久久久久影院| 色8久久精品久久久久久蜜| 色综合色狠狠综合色| 欧美午夜一区二区三区| 欧美日韩电影在线播放| 91精品免费在线观看| 日韩欧美国产一二三区| 久久久另类综合| 亚洲色图欧洲色图| 亚洲福利一区二区| 国内欧美视频一区二区| av在线播放成人| 欧美日韩一区中文字幕| 日韩一区二区三区在线观看| 国产亚洲精品免费| 亚洲视频小说图片| 日本成人超碰在线观看| 国产成人综合视频| 在线视频一区二区三| 日韩午夜激情免费电影| 亚洲欧洲美洲综合色网| 日本系列欧美系列| 成人理论电影网| 欧美精品日韩一本| 国产日产欧美一区二区视频| 亚洲夂夂婷婷色拍ww47| 国产一区二区伦理| 欧美性极品少妇| 精品播放一区二区| 亚洲一卡二卡三卡四卡| 国产成人精品免费网站| 欧美日韩一区成人| 欧美国产丝袜视频| 天天做天天摸天天爽国产一区| 国产风韵犹存在线视精品| 欧美日韩一区二区欧美激情| 国产精品久久久久久一区二区三区| 亚洲成a人v欧美综合天堂| 成人妖精视频yjsp地址| 日韩一区二区三区电影| 一区二区三区四区国产精品| 国产成人丝袜美腿| 欧美一级免费观看| 一区二区三区精品在线| 国产999精品久久久久久绿帽| 欧美日本在线看| 亚洲日本欧美天堂| 国产精品99久久久久久宅男| 欧美日韩国产综合一区二区三区| 日本一区二区三区久久久久久久久不| 日本中文在线一区| 欧美丝袜自拍制服另类| 亚洲天堂2014| 成人av在线网| 国产视频一区二区在线| 久久99国产精品麻豆| 欧美日韩亚洲综合在线| ●精品国产综合乱码久久久久| 久久激情综合网| 4438x亚洲最大成人网| 亚洲一区二区在线免费看| 97se亚洲国产综合在线| 亚洲国产精品成人综合| 国产一区二区在线观看免费| 欧美一区二区在线免费观看| 亚洲综合在线观看视频| 91片在线免费观看| 亚洲色图视频免费播放| 91丝袜高跟美女视频| 国产精品乱码妇女bbbb| 成人美女视频在线看| 国产精品久久久久婷婷二区次| 国产乱子伦视频一区二区三区| 亚洲人成在线播放网站岛国| 成人免费看黄yyy456| 中文文精品字幕一区二区| 国产精品一区二区在线观看网站| 欧美成人女星排名| 久久精品国产99久久6| 欧美喷潮久久久xxxxx| 亚洲欧洲99久久| 一区二区在线观看不卡| 成人性生交大合| 国产精品三级av| 99精品欧美一区二区蜜桃免费 | 亚洲国产精品人人做人人爽| 欧美亚洲国产bt| 免费精品视频最新在线| 欧美mv日韩mv国产网站app| 国产米奇在线777精品观看| 中文字幕制服丝袜成人av| 欧美在线观看一二区| 欧美a一区二区| 国产视频亚洲色图| 欧洲精品在线观看| 蜜臀av性久久久久蜜臀av麻豆| 久久精品亚洲一区二区三区浴池 | 一区二区三区免费看视频| 欧美日韩黄色一区二区| 日韩中文字幕1| 国产女人水真多18毛片18精品视频| 99久久99久久精品免费观看| 亚洲五码中文字幕| 久久精品综合网| 欧美日韩免费高清一区色橹橹| 国产在线视频一区二区| 亚洲免费av高清| www国产亚洲精品久久麻豆| 色偷偷久久人人79超碰人人澡| 美女网站一区二区| 亚洲精品国产第一综合99久久| 日韩精品一区国产麻豆| 色综合天天综合网天天看片| 久久国产夜色精品鲁鲁99| 亚洲美女视频一区| 国产视频一区二区在线观看| 欧美日韩一区二区在线观看| 成人午夜激情在线| 精品伊人久久久久7777人| 亚洲第一二三四区| 亚洲另类在线视频| 国产欧美精品一区二区三区四区| 欧美日韩国产一级二级| 成人视屏免费看| 国产最新精品精品你懂的| 婷婷六月综合亚洲| 综合电影一区二区三区| 久久久亚洲高清| 日韩欧美的一区| 欧美夫妻性生活| 欧美久久一二区| 91丨porny丨户外露出| 国产福利91精品| 国产精品夜夜嗨| 国产在线播放一区三区四| 日本女人一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 五月天一区二区| 亚洲精品国产精华液| 亚洲欧洲在线观看av| 国产精品丝袜久久久久久app| 久久免费视频一区| 亚洲精品一区二区三区99| 日韩欧美一级二级三级久久久| 欧美理论电影在线| 69久久夜色精品国产69蝌蚪网| 欧美日韩一级视频| 欧美日韩国产中文| 欧美精品在线一区二区| 91麻豆精品91久久久久久清纯| 欧美日韩成人激情| 欧美日韩国产综合一区二区三区| 欧美二区乱c少妇| 欧美电影免费观看完整版| 欧美成人猛片aaaaaaa| 欧美精品一区二区三区很污很色的 | 风流少妇一区二区| 丁香天五香天堂综合| 成人av资源网站| 色综合久久99| 91黄色免费版| 欧美日本在线观看| 欧美一级搡bbbb搡bbbb| 日韩欧美美女一区二区三区| 日韩免费视频线观看| 久久天天做天天爱综合色| 欧美激情一区二区三区四区| 国产精品九色蝌蚪自拍| 91精品国产综合久久久久| 日韩精品一区二区三区在线观看| 久久久久久久久久久久久久久99| 欧美高清在线一区二区| 亚洲欧美偷拍卡通变态|