王福荃, 高级信息工程师, IBM
2007 年 12 月 29 日 IBM DB2 V9 作为第一个混合型的数据库管理系统,可以同时高效存储管理关系型数据和 XML 数据。而 IBM OmniFind 是一个功能强大的企业搜索平台,可以支持复杂的企业信息搜索需求。本文主要介绍如何通过 IBM OmniFind 实现对 DB2 V9 的内容检索,特别是 XML 内容的检索。
IBM DB2 9 简介
2006 年 7 月,IBM 发布了最新一代的数据库产品 DB2 9。
IBM DB2 9 作为第一个混合型的数据库服务器,它可以处理关系型数据同时也可以处理 XML 数据。特别是对 XML 数据的支持,可以说是数据库发展史上的一个重要里程碑;
DB2 9 混合型数据库引擎可为在数据库中同时存储关系数据和 XML 数据提供灵活性和高性能,因为数据库管理系统在每一个层面(从客户端到引擎,再到磁盘)都能很好的了解和支持这两种数据模式。XML 数据继承了 DB2 为关系数据提供的相同的备份与恢复、优化、可伸缩性和高可用性。DB2 9 对 XML 独特支持,保证了 XML 数据与生俱来的层次结构和灵活性模式,大大增强了企业适应信息变化的能力,提高了企业随需应变的水平。关系型与层次型数据的混合处理能力使企业信息的无缝集成成为可能。通过一个访问请求就可以同时支持关系型数据以及 XML 数据,从而大大提高生产效率。
IBM OmniFind 介绍
IBM OmniFind 是一个优秀的企业级搜索平台。它符合企业级搜索的特点,满足企业级搜索的各种要求,提供高质量、高伸缩和安全的企业搜索能力,可使企业员工、合作伙伴和客户便捷地搜索到企业中各类有价值的信息。
图 1. OmniFind 搜索架构
OmniFind 设计的目标是无论数据在哪里、以何种形式存在,都能够对其快速地访问,通过准确分词建立索引,提供完整的管理和安全控制机制,实现次秒级的高质量搜索查询。
IBM OmniFind 提供了一个企业级的搜索体系架构,主要包括三个组件:搜寻器(Crawler)、解析和索引服务器 (Parser&Indexer)、搜索服务器(Search Engine)。
图 2. OmniFind 的组件
该架构通过多种搜寻器 (Crawler) 能够快速访问企业的各类业务信息,搜寻器返回的信息通过分词处理实现按自然语言的分词(Parser),然后对分词后的信息建立相应的索引(Indexer),基于此索引在前端提供强大的搜索服务(Search Engine),实现对各类信息的高质量快速搜索,并提供相应的 API 与用户的各类应用集成;通过此架构可以很好的满足客户企业信息搜索的需求。其中:
-
搜寻器
搜寻器可以定期或 24 小时循环的从各类数据资源中搜集数据。不同的数据源采用不同的搜寻器;通过简单配置就可以从各种数据源中搜集相关数据及元数据信息,并将这些信息存放在文件系统中,从而为解析和索引服务器提供原始数据。
-
解析和索引服务器
该组件分析由爬行器收集的文档,同时分析他们以创建索引。解析组件分析文档内容和文档元数据信息。它将分析结果以文件系统的方式存储,方便索引组件的访问。 解析和索引服务器主要实现文本的分析并构建索引。系统提供多种语言的词条库,自动识别数据资源的语种,并根据词条库中的字典,对数据进行解析分词处理,支持对简体中文及繁体中文、英文、日文等多种语言的准确分词能力;索引服务器根据解析后的文本创建相应的索引信息。
-
搜索服务器
搜索服务器处理搜索请求,同时将搜索结果返回给前端搜索应用。IBM OmniFind 支持同时使用多个搜索服务器,提供相应的可扩展性及冗余备份能力,确保搜索应用的高效及高可用性。
此外,IBM OmniFind 整个技术架构是开放的、可扩展的,更易于支持多变的行业或者企业特定的搜索应用。
采用 IBM OmniFind 搜索 DB2 V9
设置
本文示例用到的配置如下:
-
企业搜索软件:IBM OmniFind Enterprise Edition V8.4;
-
测试的 DB2 数据源:IBM DB2 V9.1;
-
二者运行在同一机器上,并且运行平台是 Windows 2003。
以下是采用 DB2 Crawler 搜寻 DB2 V9.1 的具体步骤:
在 OmniFind 服务器上安装 DB2 V9.1 客户端
如果 OmniFind 采用多节点安装模式,则需要在 Crawler 所在的服务器上安装 DB2 V9.1 客户端 ( 需要安装 DB2 V9.1 管理客户端,IBM OmniFind Enterprise Edition V8.4 不支持 DB2 V9.1 运行时客户端 ); 由于测试环境数据库服务器与 OmniFind 服务器安装在同一机器上,因此不再需要安装 DB2 V9.1 客户端。
在 D:\IBM\es\bin 目录下执行 escrdb2.vbs 脚本
当采用 IBM OmniFind Enterprise Edition V8.4 的 DB2 Crawler 搜索 DB2 V9.1(只支持 Windows 和 Linux 的 DB2;当 DB2 V9.1 安装在 UNIX 环境下则需要采用 JDBC Crawler 实现)时,必须修改某些参数才能正常进行,否则系统会给出 FFQD2100E 的错误提示。
弹出如下窗口,在该提示窗口中输入 DB2 V9.1 的安装目录;
图 3. 输入 DB2 V9.1 安装目录
点击“确定”按钮,弹出如下窗口:
图 4. 设置 Crawler
提示是否配置 DB2 Crawler 使用事件发布功能,选择“否”;
图 5. 确认信息
点击“确定”按钮,DB2 Crawler 配置脚本运行结束。
运行完配置脚本之后,查看以下相关配置文件:
-
D:\IBM\es\configurations\interfaces\crawler_DB2_interface.ini
-
D:\IBM\es\configurations\interfaces\ customcommunication_interface.ini
-
D:\IBM\es\configurations\interfaces\ discovery_interface.ini
如果这些配置文件中的 classpath 指向了 DB2 V9.1 客户端的安装目录,则说明配置脚本运行成功;
修改 C:\IBM\es\configurations\discovery 目录下的 discovery.properties 文件
备份该文件后,在文件末尾加入一行:discovery.db2.checkremotetype=false。
执行如下命令重启企业搜索系统
清单 1. 重新启动企业搜索系统
esadmin stop
stopccl
startccl
esadmin start
|
创建需要搜索的数据源
-
在数据库服务器上执行如下脚本,创建要搜索的 DB2 V9 数据库:
清单 2. 创建数据库
CREATE DB MYDB USING CODESET UTF-8 TERRITORY CN;
UPDATE DB CFG FOR MYLDB USING LOGFILSIZ 25000 LOGPRIMARY 12 LOGSECOND 50;
|
-
创建包含 XML 字段的数据库表 TEST1, 并导入测试数据:
清单 3. 创建数据库表
CONNECT TO MYDB;
SET CURRENT SCHEMA DB2ADMIN;
CREATE TABLE "DB2ADMIN"."TEST1" ("ID" SMALLINT NOT NULL , "DOC" XML NOT NULL);
IMPORT FROM TEST.DEL OF DEL XML FROM DATA REPALCE INTO DB2ADMIN.TEST1; |
其中,test.del 的具体内容如下:
清单 4. test.del 内容
1,"<XDS FIL='test.001.xml' />"
2,"<XDS FIL='test.002.xml' />"
|
test.001.xml 文件内容如下:
清单 5. test.001.xml 内容
<?xml version="1.0" encoding="UTF-8" ?>
<depart>
<CodeID>01</CodeID>
<EnDesc>IBM omnifind is a very good solution for enterprise search.
It is a total solution that can meet all of yours requirements.</EnDesc>
<ZhDesc>改革开放以来 , 在各级教育行政部门、学校和有关出版社的共同努力下 , 各地已出版了一批高职高专教育教材</ZhDesc>
<CodeGrade>1</CodeGrade>
</depart>
|
test.002.xml 文件内容如下:
清单 6. test.002.xml 内容
<?xml version="1.0" encoding="UTF-8" ?>
<depart>
<CodeID>01</CodeID>
<EnDesc>Enterprise search will help employees to search what they need.
Enterprise search platform is very useful to enterprise rapid development.</EnDesc>
<ZhDesc>企业搜索平台为企业员工快速找到所需的企业信息提供服务,企业的快速发展需要建立一个企业搜索平台。</ZhDesc>
<CodeGrade>1</CodeGrade>
</depart>
|
配置 DB2 Crawler 搜索 DB2 V9.1 数据库
运行 OmniFind 系统管理控制台,创建“集合”:DB2V9XML
图 6. 创建集合
创建 DB2 搜寻器:DB2V9_DB2Crawler
图 7. 创建搜寻器
图 8. 选择 DB2 数据库
输入数据库用户标识及密码:
图 9. 输入用户标识和密码
选择要搜寻的表:DB2ADMIN.TEST1
图 10. 选择要搜寻的表
配置相关的表属性:选择字段 ID 为唯一标识字段;
图 11. 配置属性
配置结束后,分别启动“搜寻”,“解析”,“索引”和“搜索”服务之后,就可以提供搜索服务;
在 IE 浏览器中输入 http://localhost/ESSearchApplication 运行 IBM OmniFind 自带的搜索样例程序;在搜索框中输入“搜索”关键字,就可以搜索到包含“搜索”关键字的相关记录信息(即返回表 DB2ADMIN.TEST1 中 ID=2 的记录),如下图所示:
图 12. 搜索结果
限制:当采用 IBM OmniFind 搜索 DB2 V9.1 数据库时,不支持事件发布功能;
并且 IBM OmniFind Enterprise Edition V8.4 安装在 AIX 或 Solaris 平台上时,不支持通过 DB2 Crawler 搜寻 DB2 V9.1 数据库;用户可以采用 JDBC Crawler 搜寻器实现。
结束语
本文主要介绍了采用 IBM OmniFind 搜索 DB2 9 的具体步骤。通过简单配置,用户就可以通过 IBM OmniFind 快速准确的搜索 DB2 9 中的 XML 内容。
参考资料 学习
获得产品和技术
- 下载 IBM 软件试用版,体验强大的 DB2®,Lotus®,Rational®,Tivoli® 和
WebSphere® 软件。
关于作者  | |  | 王福荃是 IBM 中国软件集团的高级信息工程师。 |
对本文的评价
|