<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            軟件測試數據庫中Oracle建立二進(jìn)制文件索引的方法

            發(fā)布: 2010-7-06 08:20 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 領(lǐng)測軟件測試網(wǎng)采編 | 查看: 19次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            軟件測試數據庫中Oracle建立二進(jìn)制文件索引的方法

            Oracle text是Oracle的全文檢索技術(shù),是9i版本標準版和企業(yè)版的一部分。Oracle text使用標準的sql語(yǔ)言索引、查找、分析存儲在oracle數據庫、文件或者網(wǎng)絡(luò )里的文本及文檔。 Oracle text能進(jìn)行關(guān)于文檔的語(yǔ)言分析,使用多種方法查找文檔,包括關(guān)鍵字、上下文查詢(xún)、邏輯操作、模式匹配、混合主題查詢(xún)、HTML/XML段落查找等方法。Oracle text在包含文本和結構化的關(guān)系屬性的混合查詢(xún)方面具有優(yōu)越性。下面舉例說(shuō)明。

            現有文檔表ZYCONTENT_TABLE為上載文件的存儲表,二進(jìn)制文件以BLOB類(lèi)型存儲在BLOB_CONTENT列中,oracle text技術(shù)提供為BLOB列中的二進(jìn)制文本文件建立索引的方法,細節如下:

            一、準備工作

            文檔表的模式為ZYFILEUP,文檔表為ZYCONTENT_TABLE。文檔表定義為:

            CREATE TABLE ZYCONTENT_TABLE(
             NAME VARCHAR(128) UNIQUE NOT NULL,
             MIME_TYPE VARCHAR(128),
             DOC_SIZE NUMBER,
             DAD_CHARSET VARCHAR(128),
             LAST_UPDATED DATE,
             CONTENT_TYPE VARCHAR(128),
             CONTENT LONG RAW,
             BLOB_CONTENT BLOB
            );

            二、為擁有文檔表的模式建立文本索引授權

            以system用戶(hù)連接數據庫,為ZYFILEUP授權。

            GRANT "CTXAPP" TO "ZYFILEUP";
            ALTER USER "ZYFILEUP" DEFAULT ROLE ALL;
            GRANT EXECUTE ON "CTXSYS"."CTX_ADM" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_CATSEARCH" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_CONTAINS" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_DDL" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_DOC" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_QUERY" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_ULEXER" TO "ZYFILEUP";
            GRANT EXECUTE ON "CTXSYS"."CTX_XPCONTAINS" TO "ZYFILEUP";

            三、建立文檔表在BLOB_CONTENT列上的索引

            以ZYFILEUP用戶(hù)連接數據庫,建立文本索引參考項

            begin
            ctx_ddl.create_preference('mylex','BASIC_LEXER');
            ctx_ddl.set_attribute('mylex','printjoins','_-');
            ctx_ddl.create_preference('mywordlist', 'BASIC_WORDLIST');
            ctx_ddl.set_attribute('mywordlist','PREFIX_INDEX','TRUE');
            ctx_ddl.set_attribute('mywordlist','PREFIX_MIN_LENGTH',1);
            ctx_ddl.set_attribute('mywordlist','PREFIX_MAX_LENGTH', 5);
            ctx_ddl.set_attribute('mywordlist','SUBSTRING_INDEX', 'YES');
            end;
            begin
            ctx_ddl.create_preference('cnlex','CHINESE_LEXER');
            end;

            建立索引

            drop index i_zycontent_table force;
            create index i_zycontent_table on zycontent_table(blob_content)
            indextype is ctxsys.context
            parameters ('DATASTORE CTXSYS.DIRECT_DATASTORE
            FILTER CTXSYS.INSO_FILTER
            LEXER ZYFILEUP.CNLEX
            WORDLIST ZYFILEUP.MYWORDLIST');

            四、索引同步和刪除

            同步索引的兩種方法:

            ALTER INDEX i_zycontent_table REBUILD PARAMETERS('resume memory 20M');

            exec ctx_ddl.sync_index('i_zycontent_table', '20M');

            刪除索引的方法:

            drop index i_zycontent_table force;

            五、索引功能介紹

            1.索引的文件類(lèi)型

            Oracle text可以過(guò)濾以及從不同格式的文檔里提取內容,它支持150多種文檔格式,最常見(jiàn)的MS OFFICE文檔、PDF文檔等都可由Oracle text來(lái)檢索。

            2.過(guò)濾器介紹

            對于純文本文件格式,如TXT、HTML、XML等文件,使用空過(guò)濾器,即NULL_FILTER,對于二進(jìn)制文件,使用INSO_FILTER過(guò)濾器,如果文檔表的BLOB列中含有二進(jìn)制文件和純文本文件,也要用INSO_FILTER過(guò)濾器,但最好是把純文本和二進(jìn)制文件分開(kāi)存儲和索引。Oracle text還提供包來(lái)從二進(jìn)制文件中提取文本到純文本文件中。

            3.詞典

            可以定制不同語(yǔ)言的詞典,該詞典含有同意詞和詞的級別關(guān)系。Oracle text可以提供多語(yǔ)言的最優(yōu)特性以支持跨越西方語(yǔ)言、日語(yǔ)、朝鮮語(yǔ)、傳統和簡(jiǎn)體中文所寫(xiě)的文檔查找。

            六、文本查詢(xún)語(yǔ)句格式

            select name from zycontent_table
            where contains(blob_content,'教育信息化',1)>0
            order by name;

            contains函數提供強大的查詢(xún)功能,"與"、"或"關(guān)系,相近(near ;)和排除(not ~)等功能,更方便的是它還可以根據某一關(guān)鍵詞查詢(xún)不同語(yǔ)種的文本,當然,這要事先設定詞典。

            七、實(shí)際應用中的問(wèn)題

            在我的實(shí)際應用中,最常用的是使用Oracle text對Word、Excel、PowerPoint、HTML、PDF等格式的中文文檔進(jìn)行索引,但我發(fā)現,無(wú)論使用INSO_FILTER還是NULL_FILTER,無(wú)論使用BASIC_LEXER還是CHINESE_LEXER,都不能檢索RTF格式的文本文檔,我在win2000,XP下試驗,都沒(méi)成功,不知什么原因?傮w來(lái)說(shuō),Oracle text的文本檢索功能還是相當出色的,它甚至不需要文本文件存儲在數據庫里,即使存儲在操作系統的文件目錄里,Oracle text也能在數據庫里為文件建立索引。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: oracle Oracle ORACLE 二進(jìn)制 軟件測試 數據庫 索引


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>