级别: 初级 Srinivas Varma Chitiveli (schitive@us.ibm.com), 咨询软件工程师, IBM
2006 年 5 月 23 日 WebSphere® Information Integrator OmniFind™ Edition
是由 IBM® 提供的全文本企业搜索产品,设计的目的是提供出色的性能、伸缩性和结果,具有广泛的数据源支持。Really Simple Syndication(RSS)提要作为一种广泛使用的技术正在日益流行,企业使用这种技术向员工分发数据。本文将探讨如何轻松地将 RSS 的功能与 WebSphere Information Integrator OmniFind Edition 相结合,从而将 RSS 提要作为搜索结果进行分发。
简介
RSS 提要以标准的 XML 格式为基础,XML 格式可以实现信息的联合。使用 RSS 格式,可以创建数据提要,这些数据提要提供您 Web 站点的标题、链接和文章摘要。其他站点可以自动地将您的信息并入他们的页面内。您还可以使用其他站点的 RSS 提要按照自己的兴趣为您的站点提供时事标题或文章。这些技术可使您的站点吸引更多的访问者,并向他们提供最新信息。
每天,员工在日常工作中都要产生大量的文件,包括各种形式和大小的客户电子邮件、业务报告、产品手册,全都存储在不同的内容后端上。为了确保员工可以使用这些信息来做出业务抉择,公司通常向员工提供使用文本搜索访问此类信息的完整访问权限。这就是 WebSphere Information Integrator OmniFind Edition(本文下面称为 OmniFind)发挥作用的地方。IBM 搜索产品的设计目的是支持对各种各样内容资源(比如 Domino® 数据库、关系数据库、门户内容、文件系统、Web 内容和企业内容系统)提出的企业扩展搜索要求。OmniFind 提供丰富的功能,用于从单个访问点搜索多种业务信息,只需亚秒响应时间就能提供高度相关的搜索结果,同时涉及到数百万个文档以及数千个用户。
经常变更信息(如新闻、博客、股票)的 Web 站点已经广泛采纳 RSS 提要来发布最新的信息。用户配置 RSS 阅读器或在他们的 Web 站点上创建链接,或者创建基于 RSS 的 portlet 来访问 Web URL 或表示提要的物理文件。提要只是少量的重要数据,而不是使用户置身于信息的海洋中。当重新加载或者刷新 RSS 阅读器、Web 站点或 portlet 页面时,用户将访问提要。
配置一个对新闻组或档案文件或博客进行索引以生成 RSS 提要的搜索引擎,将可以为广大的提要阅读器提供相关信息。浏览来自博客或新闻 Web 站点的提要时,用户可以继续使用 internet 客户机(RSS 阅读器、Web 站点或门户页面)来搜索企业中的特定主题。
在基于 RSS 的客户机中配置有一个具有搜索项的 URL 时,用户就可以访问被周期性索引的数据上得到的搜索结果。必须刷新或重新加载客户机,才能获得最新的结果。
本文将介绍一个基于 J2EE™ 的应用程序,它以 OmniFind 为基础来搜索并返回 RSS 提要作为结果。返回的提要与 RSS 2.0 兼容。以下主题将描述如何安装、配置、使用这个应用程序。
下面是搜索组件和访问结果的客户机的高级图表:
图 1. 搜索组件
示例结果和 Web 客户机
在钻研细节之前,这里给出了搜索结果和 RSS 提要的可能用例。
Web 浏览器
您可以在 Web 站点上创建一个链接,以访问特定主题的 RSS 结果。可把主题映射为页面上的一些关键项。这需要对 JavaServer™ 页面进行一些定制。Web 站点上的链接可按照标准图像识别,并应该向搜索服务器提供一个完全填充的 URL。一旦单击链接,就会在新页面上显示搜索。参见下面的图 2 和图 3。
图 2. 带有链接的示例 Web 页面
图 3. 示例结果页面
RSS 阅读器
要从很多网站聚集提要,可以选择很多商业化 RSS 阅读器,也可以选择免费的 RSS 阅读器。这些阅读器提供指定 URL 的功能,URL 返回 RSS 提要。启动或重新加载阅读器时,会对 URL 进行访问。参考下面的图 4 和图 5。
我已经使用 RSS 阅读器配置 URL,来搜索主题并显示结果。
图 4. 配置提要阅读器
图 5. 阅读器中呈现的结果
前提条件
要使用本文中讨论的应用程序,您需要满足以下几点:
- WebSphere Information Integrator OmniFind Edition (8.3 版本)应该安装在一个专用的服务器上。
- 配置 WebSphere Information Integrator OmniFind Edition 以索引与 Web 站点或新闻组或 Domino 数据库相关的企业资源。
- 用户可以使用 RSS 阅读器 或在 Web 站点上创建链接来访问提要或配置 RSS 提要 portlet。
安装 J2EE 应用程序
要使用本文中讨论的应用程序,您需要:
- 下载附加的 ESRSSResults.ear 文件。这是标准的 J2EE 企业应用程序档案文件。
- 使用 WebSphere 管理控制台将下载的应用程序部署到 WebSphere Application Server 上,最好是在 WebSphere Application Server 的 “服务器 1” 实例上。
配置示例应用程序
ESRSSResults.ear 是一个简单的基于 servlet 的 J2EE 应用程序,它调用已实现的 Search and Indexing API (SIAPI) 界面来搜索由 OmniFind 索引的 Enterprise 内容。结果做为 RSS 提要返回给客户机。.ear 文件只是对 RSS 提要做为搜索结果进行说明的一个示例。
如需了解更多关于 SIAPI 的知识,参见 参考资料 部分,在那里我给出了一些到其他 developerWorks 文章的有用链接。
在发布这个使用的应用程序前,WebSphere 管理员需要在一个叫做 confi.properties 的配置文件中修改默认设置。这个文件部署在 <WebSphere 安装目录 >/ESRSSResults.ear/ESRSSResults.war/WEB-INF 目录中。
更新以下条目以访问 OmniFind 驻留的可搜索内容:
- 主机名=<WebSphere Information Integrator OmniFind Edition 的搜索服务器节点>
- 端口=<HTTP 服务器端口号>
如果在 OmniFind 搜索节点上启用了全局安全性,那么指定以下凭证,从而搜索请求不提示需要用户凭证:
- 用户名=<WebSphere Information Integrator OmniFind Edition 搜索节点上的有效用户>
- 口令=<关联的口令>
这些只是启动应用程序所需的一些基本配置参数。配置文件中有几个字段,指定这些字段可定制在 RSS 提要中填充的内容。可定制的内容可以是通道的标题或描述。添加更多由适合您的组织的 RSS 2.0 规范提出的通道扩展,或者识别 URL 用于在维护搜索站点时指定信息。请参考 config.properties,在这个文件中的字段名称是自解释的。
RSS 2.0 指定至少 18 个可能的元素,它们中的 3 个是强制性的(<title/>、<link/> 和
<description/>)。根据企业的需求,config.properties 文件提供一个密钥,用来指定更多的通道元素(<webmaster/>、<textinput/> 或 <skipdays/> 是一些可能的元素)。
示例搜索
一旦成功地完成对应用程序的配置,用户就可以通过 URL 更新自己个人的 RSS 提要阅读器,URL 通过特定的查询项执行搜索并返回与阅读器兼容的结果。在本节中,我给出了大量的 URL 示例,它们可以帮助用户创建他们喜欢的 URL。
在随后的示例中,假设 <yourserver> 是服务器的名称,该服务器上将驻留 ESRSSResults.ear 应用程序。
搜索单个项,比如说 "IBM"
- http://<yourserver>/ESRSSResults/rss.do?queryString=IBM
这个字段是强制性的,它识别查询项。为进行处理,多个查询项应该安全地编码。
搜索多个项,比如说 "IBM Domino"
因为 “空格” 是个特殊的字符,所以下面这个示例安全地编码了 URL 请求中的空格:
- http://<yourserver>/ESRSSResults/rss.do?queryString=IBM%20Domino
注意:“%20” 表示 “空格” 的编码值。
参阅 参考资料 部分,我在那里指明了一个文档,它有助于您了解对 URL 进行特殊编码。同样在参考资料中,参阅应用程序开发者指南,它对查询字符串可接受的格式进行了描述。
搜索多个项,比如说 "+IBM -Domino +WebSphere"
下面这个示例安全地编码特殊字符(加号和减号):
- http://<yourserver>/ESRSSResults/rss.do?queryString=%2BIBM%20%-Domino%20%2BWebSphere
注意:“%2B” 是 “+” 的编码值,“-” 不需要编码。
使用安全令牌进行搜索
OmniFind 可以配置来将文档与安全令牌或访问控制列表相关联。用户必须指定安全令牌或分配的访问控制(例如组名称),来检索对他们可见的文档。下面这个示例利用安全令牌或访问控制搜索文档:
- http://<yourserver>/ESRSSResults/rss.do?queryString=business%20growth%20rate&acl=staff&acl=userid
acl 参数是可选的。如果未指定 acl,那么将返回被标记为公共访问的文档。如果指定了多个值,指定的 acl 将进行 “OR” 运算以得到最大的结果。
由于 RSS 提要是一种对普通受众公开的数据进行分发的标准格式,所以要确保 OmniFind 索引的内容不是机密的内容。而且让用户使用这种选项指定任意组将破坏安全性。实现筛选器是一个可取的做法,筛选器查询企业用户存储库(LDAP)来为已登录的组确定组。然后将发现的组作为 acl 参数追加到搜索 URL。
搜索特定的应用程序
以上所有示例都从 config.properties 中指定的默认应用程序返回结果。可搜索的集合按照应用程序名称进行隔离。如果 OmniFind 的管理员用集合(其中包含有关公司收入统计信息的文档)和一个叫做 “QuickHelp” 的应用程序(其中可能包含一些关于客户问题的文档)配置 “Finance” 应用程序,那么您可以为相关信息指定适当的应用程序名称。联系管理员获得一系列可搜索的应用程序名称。
在下面这个示例中,在名为 “Finance” 的应用程序中搜索 “business growth +programs”:
- http://<yourserver>/ESRSSResults/rss.do?queryString=business%20growth%20%2Bprograms&appID=Finance
appID 参数是可选的。如果未指定 appID,将使用 config.properties 中指定的默认值。
同样,系统管理员应该谨慎对待索引机密数据,并应该使用应用程序 ID 将它们隔离。
搜索特定的集合
上一节提到的应用程序由一组集合组成。前面几节描述的示例查询以应用程序名称为基础。如果 URL 包含应用程序名称但是不包含集合 ID,那么查询将被提交给所有集合,结果将进行联邦。要使搜索结果更加细粒度,还可以指定感兴趣的集合。这种情况下,结果将不进行联邦。集合由惟一 ID 表示。联系管理员获得一系列与应用程序相关联的集合 ID。
在下面这个示例中,在名为 “col_2134” 和 “col_9876”、与 “Finance” 应用程序相关联的集合 ID 中搜索 “business growth +programs”:
- http://<yourserver>/ESRSSResults/rss.do?queryString= business%20growth%20%2Bprograms&appID=Finance&colid=col_2134&colid=col_9876
colid 是可选的参数。如果未指定 colid,将在指定应用程序映射的所有集合范围内调用搜索查询。colid 可以表示多个集合 ID。
将结果排序
默认情况下,搜索结果按照关联性排序。您还可以配置 URL 来按照日期对结果排序。
在下面这个示例中,按照日期对结果排序:
- http://<yourserver>/ESRSSResults/rss.do?queryString=business&sortKey=date
这是可选的参数。Relevance 和 date 是可能的值。
默认情况下,搜索结果按降序显示。搜索结果也可以按升序显示。
在下面这个示例中,按升序显示结果:
- http://<yourserver>/ESRSSResults/rss.do?queryString=business&sortOrder=ascending&sortKey=date
这是可选的参数。Ascending 或 descending 是可能的值。当 sortKey 设置为关联性时,搜索结果降始终是降序的。
变更生效时
如果管理员修改 config.properties 文件,当利用 “refresh=true” 调用后续的搜索请求时,变更将会生效。
在下面这个示例中,调用 J2EE 应用程序来使用定制的变更刷新它的配置。
- http://<yourserver>/ESRSSResults/rss.do?refresh=true
注意: 这是一个管理任务。
结束语
在本文中描述的应用程序演示了 WebSphere
Information Integrator OmniFind Edition 的测试搜索功能,以处理向用户社团分发企业信息的这种需求,这些用户社团链接到 RSS 提要以从企业内部网/互联网获取最新的信息。配置了 RSS 阅读器来访问大量 Web 站点的最新信息的用户还可以发现一个提要(这个应用程序的 URL)来访问企业中定期改变的公共内容。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| Enterprise application archive | ESRSSResults.ear | 4917KB | HTTP |
|---|
参考资料
关于作者  | 
|  | Srinivas Varma Chitiveli 是 IBM 软件组的一名软件工程师。他参与开发了 IBM 产品,这些产品处理针对安全的电子商务事务、内容管理和跨分布式数据源搜索信息而发布数字证书相关的技术。 |
对本文的评价
|