扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
WebSphere Portal V6.0 的特点是提供了搜索和索引 API (SIAPI),您可以使用它在门户中构建自定义搜索体验的 Portlet。本文介绍了七个使用 SIAPI 的 Portlet 示例。要下载这些示例 Portlet 并获取有关 SIAPI 的附加信息,包括 Javadoc,请参见参考资料部分。
提供这些示例 Portlet 有两个目的:它们演示了搜索接口的灵活性,并且提供了高级搜索特性以增强门户站点的搜索体验。门户搜索工具箱(Portal Search Toolbox,PST)中包括这些示例 Portlet:
这些 PST Portlet 都无法单独地工作。相反,它们使用 Portlet 连接与搜索集成在一起,以便为用户提供丰富的搜索体验。因此,您可以根据需要将相关的 Portlet 放置在门户页面中,为用户和数据提供无缝的搜索体验。(请参见图 1 中的示例。)
本文为每一个 PST Portlet 提供了相关的信息、以及如何部署和配置这些 Portlet,还介绍了如何将这些示例 Portlet 连接在一起以支持全面的搜索体验。
要使用这些 PST Portlet,您需要安装 WebSphere Portal V6.0 和 Ifix PK35650。
图 1. 显示这些 PST Portlet 协同工作的 PST 配置示例(每个 Portlet 的名称位于该 Portlet 的上方)
|
PST 示例 Portlet 简介
这部分内容描述了每个 PST Portlet 的目的和可能的用途。包括如何配置它们,并描述了它们的连接能力和选项。
|
Scope Search
使用 Scope Search Portlet,您可以通过三种元素提供查询搜索用户接口:用于输入查询的文本区域、执行查询的搜索按钮以及搜索范围选择列表。
这个 Portlet 可以与 PST 中其他的 Portlet 协同工作,如 Display Results Portlet,以呈现通过这个 Portlet 执行某个查询时得到的搜索结果列表。图 2 显示了 Scope Search Portlet。
您可以在 pst.scopesearch.war 中找到这个 Portlet。
图 2. Scope Search Portlet
配置 Scope Search
在配置模式中,或者通过 Scope Search Portlet 参数,您可以配置下面两个参数:
100
。
10
。 对于一般的搜索,Results per Page 和 ResultSet Size 的含义非常直观。当 Scope Search Portlet 与 Facets Portlet 一同使用时,ResultSet Size 可以确定结果的数目,而这些结果将为显示相关方面创建聚合数据(有关更详细的信息,请参见“方面”部分)。
例如,您可以选择在 Display Results Portlet 中显示 10 项结果,但是在后台,可以使用 ResultSet Size 请求至少 100 项结果。这样为 Facets Portlet 提供了更多的选择项,以便对搜索结果进行筛选;用户可以看到开头的 10 项结果,但还可以使用整个结果集(在本示例中为 100 项)中出现的作者信息对搜索结果进行筛选。请求的结果越多,显示这些结果的速度越慢。
连接 Scope Search
Scope Search Portlet 使用不同的连接与其他 PST Portlet 通信。“连接选项”部分提供了所有可用的连接。
Scope Search Portlet 生成下列消息:
这个 Portlet 使用下列消息:
|
Display Results
您可以使用 Display Results Portlet 显示搜索结果列表,其中由 Scope Search Portlet(搜索的结果)、Facets Portlet(根据所选方面进行筛选的结果)、或者 Search History Portlet(过去单击过的、或者保存在历史记录中并且重新执行的某个搜索查询)启动搜索任务。图 3 显示了 Display Results Portlet。
当用户单击搜索结果中的一项时,将向 Search History Portlet(如果出现在页面中并进行了连接)发送一个事件,这样用户可以看到以前单击过的任何查询的链接列表。
您可以在 pst.searchresults.war 中找到这个 Portlet。
图 3. Display Results Portlet
配置 Display Results
在配置模式或者通过 Portlet 参数,可以定义是否:
连接 Display Results
Display Results Portlet 生成下列消息:
这个 Portlet 使用下列消息:
|
Searchlet
您可以使用 Searchlet Portlet 显示从其他内部或外部搜索服务处获得的搜索结果。通过这种方式,可以将主门户结果显示在来自其他搜索应用程序或者服务的搜索结果旁边。图 4 的右侧显示了 Searchlet Portlet。
您可以在 pst.searchlet.war 中找到这个 Portlet。
图 4. Searchlet 将来自 www.ibm.com 的结果显示在门户搜索结果旁边
配置 Searchlet
这个 Searchlet Portlet 通过一个 HTTP URL 访问搜索服务。在配置模式中,可以通过向这个 Portlet 上传一个描述搜索服务的 XML 文件来配置 Searchlet。Searchlet Portlet 将对这个 XML 文件进行解析,并将不同的配置参数保存为 Portlet 参数。
清单 1 提供了一个这样的配置文件示例,该文件用于查询 www.ibm.com:
清单 1. 搜索服务配置
<search action="http://www.ibm.com/Search/"> <input name="q"/> <interpret resultListStart="<!--BeginOutput-->" resultListEnd="<!--EndOutput-->" resultItemStart="<td width="392"valign="top" dir="ltr">" resultItemEnd="<!--EndRecord-->" /> </search> |
这种格式与 mycroft 格式 (http://mycroft.mozdev.org/) 稍有不同:
<search action=”…”>
指定了搜索服务的 URL。
<input input=”…”>
为查询指定了 URL 参数。因此,实际的 Web 接口为 http://www.ibm.com/Search/?q=
resultListStart
是 HTML 页面中作为结果返回的搜索结果的开始标记。
resultListEnd
是搜索结果的结束标记。
resultItemStart
和 resultItemEnd
分别用来标识每个搜索结果。 必须将 Portlet 参数 search_engine 的值设置为 com.ibm.lotus.search.pst.mycroftengine.impl.MycroftEngineImpl
。
可以配置附加的 Portlet 参数,包括:
连接 Searchlet
Searchlet Portlet 将使用 Results 消息,并使用其中的查询部分向外部搜索服务再次发出相同的查询。
重要:
|
Sponsored Links
与 Searchlet Portlet 一样,您可以使用 Sponsored Links Portlet 在门户结果的旁边显示搜索结果。然而在这种情况下,管理员需要使用专门的门户搜索集合手动定义这些结果。管理员可以使用这个 Portlet 将选择搜索结果映射为用户搜索请求中的某些关键字。如果用户没有输入这些关键字,那么 Sponsored Links Portlet 将不会返回任何链接。图 5 显示了 Sponsored Links Portlet。
这个 Portlet 也为站点管理员提供了一种解决方案,通过为某些关键字增加术语权重,从而提升某些链接,而不破坏搜索引擎的相关性逻辑。因为该 Portlet 与常规的搜索结果是分开的,所以最终用户可以接受它的存在。
您可以在 pst.searchlet.war 中找到这个 Portlet。
图 5. Sponsored Links Portlet
配置 Sponsored Links
使用这个 Portlet 的基本方法是,创建并使用为根据某次搜索检索 URL 列表而构建的搜索集合,该搜索通常仅在索引内容的“keyword”字段中进行搜索。您可以使用搜索集合的“Add document”特性(而不是通过对赞助商 Web 站点进行爬网处理)手动地将某些关键字关联于给定的 URL。
通过 Search Admin Portlet,可以为赞助商链接添加 URL 引用。首先,通过选择 Administration > WebSphere Portal > Search Administration > Manage Search(有关更详细的信息,请参阅 WebSphere Portal Infocenter)为赞助商链接创建一个集合。
在创建了集合之后,可以通过单击“Add Document”图标 (),在集合中定义赞助商链接。
在接下来的屏幕中,可以为赞助商链接定义相应的 URL,并将一些关键字关联于这个搜索集合的 URL。
在集合中,还对页面的内容进行了索引。使用 Portlet 参数,您可以对 Sponsored Links Portlet 进行配置,以搜索用户查询的内容或者关键字。
必须设置下列 Portlet 参数:
com.ibm.lotus.search.pst.sponsoredlinkssearch.impl.SponsoredLinksSearch
com.ibm.lotus.search.pst.sponsoredlinkssearch.impl.SponsoredLinksDisplayer
这个 Portlet 与 Searchlet Portlet 相同,但使用了不同的参数。
您可以配置附加的 Portlet 参数,包括:
5
。
true
。
连接 Sponsored Links
Sponsored Links Portlet 使用 Results 消息,并使用其中的查询部分向赞助商链接集合再次发出相同的查询。
|
方面
面向方面的搜索和导航是一种新的搜索范例,可以方便定位和筛选搜索结果。通过多种分类模式,您可以使用 Facets Portlet 自动地对搜索结果进行组织。这个 Portlet 可以自动基于结果集中最频繁的属性值计算这些分类或者“方面”(请参见图 6 ),并将它们显示给用户。在方面值的旁边,圆括号中的是在结果集中具有这个特定值的匹配项数目。
例如在图 6 中,结果集中包含 100 项结果。如果查看“Source”方面,您将看到 95 项结果为门户页面,1 项为 Web 页面,4 项来自另一个源。当您单击其中一个值时,这个 Portlet 将刷新结果集和方面,仅显示包含匹配所选值的项目的结果集。如果您单击“Portal Page”链接,所有的方面将进行刷新,显示与 95 个门户页面相关的方面。
您可以在 pst.facetsearch.war 中找到这个 Portlet。
图 6. Facets Portlet
配置 Facets
在配置模式中,您可以通过定义下列参数对 Facets Portlet 进行配置:
连接 Facets
Facets Portlet 可以与 Display Results Portlet 进行通信,仅显示属于当前单击的方面的结果。
Facets Portlet 生成 Results 消息,其中包含对当前方面进行筛选的结果。这个 Portlet 使用 Results 消息以计算当前方面。
|
Advanced Search
您可以使用 Advanced Search Portlet 定义高级搜索条件。因为不同的字段可能与不同的范围相关,所以对于每个搜索范围,这个 Portlet 显示了可以为其定义一项条件的属性列表(例如:作者、标题)。对于给定的属性,您可以将搜索值定义为自由文本、或者通过从配置模式中定义的列表中选择一个值。请参见图 7 。
Advanced Search Portlet 可以与 Scope Search Portlet 通信,以便当用户在 Scope Search Portlet 中单击“Search”按钮时,浏览器可以将高级搜索条件和搜索关键字一起提交给搜索引擎。
您可以在 pst.advancedsearch.war 中找到这个 Portlet。
图 7. Advanced Search Portlet
配置 Advanced Search
配置 Advanced Search Portlet 需要完成两个步骤。首先,创建一个存储高级搜索属性和可选值的文档库。然后,配置 Advanced Search Portlet。
要创建保存该 Portlet 的高级搜索属性的文档库,可以按下面的步骤进行:
请记住写下库的 ID。稍后将使用这个库 ID 作为 ADVANCED_SEARCH_DOC_LIB_ID Portlet 参数的值。
下一步是更新该 Portlet 的配置参数:使用刚创建的文档库的库 ID 更新 ADVANCED_SEARCH_DOC_LIB_ID。
在 Portlet 编辑模式中(请参见图 8 ),对于每一个范围,您可以定义显示哪些属性,以及用户是否可以输入属性作为自由文本、或者可以从值列表中选择属性。
图 8. Advanced Search Portlet 配置
连接 Advanced Search
Advanced Search Portlet 生成 Query Extend 消息,该消息包含需要添加到全文查询的高级查询术语。
这个 Portlet 使用下列消息:
|
Search History
您可以使用 Search History Portlet(请参见图 9 )来保存用户发出的搜索查询。此外,对于每一个查询,它将保存单击过的搜索结果的链接。要查看这些链接,可以单击“Clicked Results”栏中的 图标。单击一项查询将再次执行它。
您可以在 pst.searchhistory.war 中找到这个 Portlet。
图 9. Search History Portlet
配置 Search History
要使用 Search History Portlet,首先需要创建该 Portlet 用来保存查询的文档库:
记录库 ID,您可以在运行时使用这个 ID 查找该库。
Search History Portlet 具有三个配置参数:
连接 Search History
Search History Portlet 生成下列消息:
这个 Portlet 使用下列消息:
|
连接选项
表 1 给出了 PST Portlet 的所有连接选项,包括源 Portlet、目标 Portlet 和每种连接的描述。描述内容还在圆括号中显示了源 Portlet 的哪一个输出连接到目标 Portlet 的哪一个输入。
表 1. PST 的连接表
源 | 目标 | 描述 |
---|---|---|
Scope Search | Display Results | 传送要显示的结果 (Results/Results) |
Searchlet | 传送要执行的查询 (Results/Query) | |
Sponsored Links | 传送要执行的查询 (Results/Query) | |
Facets | 传送要汇总的结果 (Results/Source) | |
Advanced Search | 传送当前范围和查询 (Scope Change/Scope Change) 与 (Results/Results) | |
Search History | 传送要保存的当前查询 (Results/Results) | |
Display Results | Scope Search | 为下一页或上一页传送要查询的请求 (Source/Source) |
Search History | 传送要保存的当前查询 (Results/Results) | |
Facets | Display Results | 传送要显示的筛选结果 (Results/Results) |
Advanced Search | Scope Search | 传送要添加到全文查询的高级搜索条件 (Query Extend/Query Extend) |
Search History | Scope Search | 传送要再次发出的历史查询 (Source/Source) |
Display Results | 传送要显示的单击过的结果列表 (Clicked Results/Clicked Results) |
|
结束语
本文介绍了 Portal Search Toolbox 中包括的一些示例 Portlet。可以对这些示例 Portlet 进行实验,查看它们的代码,并根据需要对其进行自定义。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者