程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2 XML 全文搜索之為文本搜索做准備

DB2 XML 全文搜索之為文本搜索做准備

編輯:DB2教程

搜索 DB2 中的 XML 文檔需要執行的任務分成兩部分:

1、索引管理任務

2、全文搜索

本節簡要討論這兩種任務,使用的示例針對 清單 1 中定義的 “product” 表。注意,“product” 表的 “description” 和 “comments” 列是 XML 類型的(換句話說,“description” 和 “comments” XML 文檔原生存儲在數據庫中)。

清單 1. 表定義:

create table product (
  pid varchar(10) primary key not null,
  description XML,
  comments XML
  );

“product.description” 和 “product.comment” 列中存儲的 XML 數據示例分別見 圖 1 和 圖 2。後面的查詢示例搜索這些 XML 文檔的特定元素。“DB2 Viper 快速入門” (developerWorks,2006 年 3 月)討論了如何在 DB2 中插入 XML 文檔。

圖 1. “product.description” 列的數據示例

圖 2. “product.comments” 列的數據示例

首先考慮一下對 “product” 表執行文本搜索操作時需要做什麼,比如搜索在評論的 “message” 元素中有單詞 “satisfactory” 的產品的名稱,或者在描述的 “details” 元素中有短語 “sugar and creamer” 的產品的名稱。

在使用 Net Search Extender 之前,必須先啟動它的實例服務,見清單 2:啟動 Net Search Extender 實例服務的命令:

db2text start

注意,這個命令調用一個單獨的可執行程序 db2text。以後會看到,任何文本索引管理任務都需要用命令 db2text 來執行。

在啟動 Net Search Extender 之後,對 DB2 數據庫啟用文本搜索操作。這個步驟創建必需的管理表以及各種用戶定義函數(UDF)和存儲過程(STP),這是對 DB2 數據進行全文搜索所需要的,而且對每個數據庫只執行一次。

對數據庫 “test” 啟用文本搜索操作的命令如下:

清單 3. 對數據庫 “test” 啟用文本搜索操作的命令

db2text enable database for text connect to test

如果還沒有設置 DB2DBDFT 環境變量,那麼所有 Net Search Extender 管理任務都需要 connect to 子句,其中的 是數據庫的名稱。以下命令假設設置了 DB2DBDFT。

在為數據庫啟用文本搜索操作之後,可以在以各種格式(比如 XML)存儲文本數據的列上創建文本索引。create index 命令定義文本索引屬性,比如更新頻率、文檔格式、索引目錄等等,從而建立文本索引基礎設施。關於各種索引屬性的更多信息,請參考 Net Search Extender 文檔。本文中的示例使用一個基本的文本索引創建過程,見清單4:在 “product.description” 上創建文本索引 ix1

db2text create index ix1 for text on product(description)。

清單 4 中的命令在 “product” 表的 “description” 列中本機存儲的 XML 文檔上創建一個名為 “ix1” 的全文索引。

注意,在創建文本索引之後,文本搜索還不能找到任何結果,因為此時文本索引不包含任何數據。如果沒有指定更新頻率,那麼需要顯式地對數據和文本索引進行同步。對文本索引進行同步的任務稱為索引更新,通常在創建文本索引之後立即執行。

清單 5. 使文本索引與基表中的數據同步

db2text update index ix1 for text

索引更新過程可以使用清單5中的命令手工執行,也可以使用後台守護進程自動執行。自動索引更新可以在創建索引時用索引屬性指定,也可以以後使用 alter index 命令指定。

下面總結一下在 DB2 中准備全文搜索操作所需完成的步驟:

表 1. 在 DB2 中准備全文搜索操作的步驟

在完成這四個管理步驟之後,就可以對 XML 數據進行全文搜索了。那麼,可以用來尋找相關信息的實際搜索特性是什麼?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved