Oracle9i的全文檢索技術開發者網絡Oracle建站知識
導讀:1建站知識Oracle9i的全文檢索技術開發者網絡Oracle建設網站公司網站建設。
正在看的ORACLE教程是:Oracle9i的全文檢索技術開發者網絡Oracle。
介紹:細處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。 >> 摘要 全文檢索技術是智能信息管理的關鍵技術之一,Oracle Text作為Oracle9i的一個組件,提供了強大的全文檢索功能,用Oracle9i做后臺數據庫,就可以充分利用其全文檢索技術,構建復雜的大型文檔管理系統。本文主要介紹了Oracle Text的體系結構及其使用。 關鍵詞 Oracle Text 全文檢索 Oracle一直致力于全文檢索技術的研究,當Oracle9i Rlease2發布之時,Oracle數據庫的全文檢索技術已經非常完美,Oracle Text使Oracle9i具備了強大的文本檢索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名稱,在Oracle8/8i中它被稱作Oracle interMedia Text,在Oracle8以前它的名稱是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用標準的SQL工具來構建基于文本的新的開發工具或對現有應用程序進行擴展。應用程序開發人員可以在任何使用文本的Oracle數據庫應用程序中充分利用Oracle Text搜索,應用范圍可以是現有應用程序中可搜索的注釋字段,也可是實現涉及多種文檔格式和復雜搜索標準的大型文檔管理系統。Oracle Text支持Oracle數據庫所支持的大多數語言的基本全文搜索功能。本文將介紹如何使用Oracle9i的全文檢索技術來為自己的應用提供一個優秀的解決方案?! ? Oracle Text的體系架構 下圖是Oracle Text的體系架構。
圖1 Oracle Text的體系架構 以上面的體系架構圖為基礎,Oracle Text 索引文檔時所使用的主要邏輯步驟如下: ?。?)數據存儲邏輯搜索表的所有行,并讀取列中的數據。通常,這只是列數據,但有些數據存儲使用列數據作為文檔數據的指針。例如,URL_DATASTORE 將列數據作為 URL 使用?! 。?)過濾器提取文檔數據并將其轉換為文本表示方式。存儲二進制文檔 (如 Word 或 Acrobat 文件) 時需要這樣做。過濾器的輸出不必是純文本格式 -- 它可以是 XML 或 HTML 之類的文本格式?! 。?)分段器提取過濾器的輸出信息,并將其轉換為純文本。包括 XML 和 HTML 在內的不同文本格式有不同的分段器。轉換為純文本涉及檢測重要文檔段標記、移去不可見的信息和文本重新格式化?! 。?)詞法分析器提取分段器中的純文本,并將其拆百度seo網站優化分為不連續的標記。既存在空白字符分隔語言使用的詞法分析器,也存在分段復雜的亞洲語言使用的專門詞法分析器?! 。?)索引引擎提取詞法分析器中的所有標記、文檔段在分段器中的偏移量以及被稱為非索引字的低信息含量字列表,并構建反向索引。倒排索引存儲標記和含有這些標記的文檔。 [NextPage] 2 簡單的示例 這里先給出一個簡單示例說利用Oracle Text實現全文檢索的方法與步驟,在后面在進行具體的說明。Orcale9i提供了Oracle Text Manager可以簡化許多工作,所有在Oracle Text Manager中完成的工作,都可以在通過PL/SQL來實現。要使用Oracle Text,必須具有CTXAPP角色或者是CTXSYS用戶。Oracle Text為系統管理員提供CTXSYS用戶,為應用程序開發人員提供CTXAPP角色?! TXSYS用戶可執行以下任務:啟動Oracle Text服務器,執行CTXAPP角色的所有任務。具有CTXAPP角色的用戶可執行以下任務: 創建索引,管理 Oracle Text 數據字典,包括創建和刪除首選項,進行Oracle Text 查詢,使用 Oracle Text PL/SQL程序包?! ∈褂肙racle Text的步驟: (1)創建表來保存某些文檔。該示例使用一個主關鍵字列來標識每個文檔,使用一個小的VARCHAR2列來保存每個文檔。CREATE TABLE docs (id NUMBER PRIMARY KEY, text VACHAR2(80)); (2)將兩個示例文檔置入該表:INSERT IN網站推廣優化seoTO docs VALUES (1,'the first doc');INSERT INTO docs VALUES (2,'the second doc');COMMIT; (3)使用Oracle Text Manager來創建和修改首選網站優化seo培訓項,首選項將與索引相關聯?! 。?)使用Oracle Text Manager創建文本索引。另外,可以輸入以下使用默認首選項的 SQL 語句:CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT; (5)使用 CONTAINS 函數,發出基于內容的文檔查詢。例如:SELECT id FROM docs WHERE CONTAINS (text, 'first') > 0; 這將在文本列包含單詞 first (即文檔1) 的 docs 中查找所有行。語句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函數的布爾返回值。 以上只是一個簡單的示例,旨在給出使用Oracle Text建立全文索引的完整步驟,歸納起來如下: ?。?)建表并裝載文本(包含帶有需要檢索的文本字段) ?。?)配置索引 (3)建立索引 (4)發出查詢 (5)索引維護:同步與優化(將在后面介紹) 3 文本裝載 要實現文本的全文檢索首先必須把正確的文本加載到數據庫表中,默認的建立索引行為要求將文檔裝載在文本列中,盡管可以用其它方式 (包括文件系統和 URL 形式)存儲文檔 (在"數據存儲"選項進行設置)。默認情況下,系統應該將文檔裝載在文本列中。文本列可以是VARCHAR2、CLOB、BLOB、CHAR或BFILE。注意,只有在將Oracle7系統移植到Oracle8的情況下才支持用LONG和LONG RAW 這兩個相反的列類型存儲文本。不能為列類型NCLOB、DATE和NUMBER建立索引?! £P于文檔格式,因為系統能為包括HTML、PDF、Microsoft Word和純文本在內的大多數文檔格式建立索引,可以將其中的任何文檔類型裝載到文本列中(在"過濾器"選項中設置)。有關所支持的文檔格式的詳細信息,可以參閱Oracle Text User's Guide and Reference 中的附錄"Supported Filter Formats"?! ⊙b載方法主要有以下幾種: ?。?)SQL INSERT 語句 (2)ctxload 可執行文件 ?。?)SQL*Loader ?。?)從 BFILE 中裝載 LOB 的 DBMS_LOB.LOADFROMFILE() PL/SQL 過程 ?。?)Oracle Call Interface聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章Oracle9i的全文檢索技術開發者網絡Oracle建站知識主要講述開發者,標簽,Oracle9i的全文檢索技術開發者網絡網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5139.html