文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» DB2 » DB2 XML 全文搜索之为文本搜索做准备       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: DB2 XML 全文搜索之为文本搜索做准备  ( 查看:558  回复:0 )   
 
pinglin
新新人类  点击可查看详细



帖子 18
精华 0
无忧币 56
积分 46
阅读权限 20
注册日期 2007-9-29
最后登录 2007-11-9 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-29 01:07   标题:DB2 XML 全文搜索之为文本搜索做准备
上一帖 |
搜索 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 数据进行全文搜索了。那么,可以用来寻找相关信息的实际搜索特性是什么?

[ 本帖最后由 pinglin 于 2007-9-29 01:10 编辑 ]



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2007-9-29 01:071楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号