科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道通过使用 Portal Search Toolbox 充分利用 WebSphere Portal V6 Search 的强大功能

通过使用 Portal Search Toolbox 充分利用 WebSphere Portal V6 Search 的强大功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文描述了如何使用七个示例 Portlet 来丰富最终用户的搜索体验,并且提高门户的管理能力。

作者:ibm 来源:ibm 2007年10月7日

关键字: IBM WEBSPHERE 技术 中间件

  • 评论
  • 分享微博
  • 分享邮件

引言

WebSphere Portal V6.0 的特点是提供了搜索和索引 API (SIAPI),您可以使用它在门户中构建自定义搜索体验的 Portlet。本文介绍了七个使用 SIAPI 的 Portlet 示例。要下载这些示例 Portlet 并获取有关 SIAPI 的附加信息,包括 Javadoc,请参见参考资料部分。

提供这些示例 Portlet 有两个目的:它们演示了搜索接口的灵活性,并且提供了高级搜索特性以增强门户站点的搜索体验。门户搜索工具箱(Portal Search Toolbox,PST)中包括这些示例 Portlet:

  • Scope Search — 仅在预定义的范围内进行搜索。
  • Display Results — 显示搜索结果列表。
  • Searchlet — 显示来自外部搜索服务(如 Yahoo!)的结果。
  • Sponsored Links — 根据搜索请求中输入的关键字,显示建议链接的列表。
  • Facets — 使用搜索结果中出现的可用方面(例如:作者、日期)对搜索结果列表进行筛选。
  • Advanced Search — 使用高级搜索选项(例如:根据作者、标题等等进行搜索)在某个范围中进行查询。
  • Search History — 允许管理员和/或用户浏览查询的历史以及他们以前单击过的结果。

这些 PST Portlet 都无法单独地工作。相反,它们使用 Portlet 连接与搜索集成在一起,以便为用户提供丰富的搜索体验。因此,您可以根据需要将相关的 Portlet 放置在门户页面中,为用户和数据提供无缝的搜索体验。(请参见图 1 中的示例。)

本文为每一个 PST Portlet 提供了相关的信息、以及如何部署和配置这些 Portlet,还介绍了如何将这些示例 Portlet 连接在一起以支持全面的搜索体验。

要使用这些 PST Portlet,您需要安装 WebSphere Portal V6.0 和 Ifix PK35650


图 1. 显示这些 PST Portlet 协同工作的 PST 配置示例(每个 Portlet 的名称位于该 Portlet 的上方)
图 1. 显示这些 PST Portlet 协同工作的 PST 配置示例(每个方面的名称位于该 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
图 2. Scope Search Portlet

配置 Scope Search

在配置模式中,或者通过 Scope Search Portlet 参数,您可以配置下面两个参数:

  • ResultSet Size — 定义从该范围中检索结果的数目。缺省值为 100
  • Results per Page – 定义 Display Results Portlet 每个页面中显示结果的数目。缺省值为 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 生成下列消息:

  • Results – 包含查询、搜索范围标识符和结果列表。例如,Display Results Portlet 将使用这个消息。
  • Scope Change – 包含所选的范围。

这个 Portlet 使用下列消息:

  • Source – 包含查询下一页或上一页结果所需的信息。
  • Query Extend – 包含可以添加到全文查询中的高级搜索条件。





回页首


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
图 3. Display Results Portlet

配置 Display Results

在配置模式或者通过 Portlet 参数,可以定义是否:

  • 在新的窗口中打开结果。缺省值为“0”(false)。
  • 最初将这个 Portlet 放到页面上时,会显示一条消息。缺省值为“1”(true)。如果您希望在一个页面中放置多个 Display Results Portlet,并且希望向用户隐藏这一点,那么这样做是非常有用的。
  • 这个 Portlet 在所有搜索结果中突出显示搜索的术语。缺省值为 true。

连接 Display Results

Display Results Portlet 生成下列消息:

  • Link Click – 告知单击了某个搜索结果。
  • Source – 计算下一页或上一页要显示的结果。

这个 Portlet 使用下列消息:

  • Results – 要显示的搜索结果。
  • Clicked Results – 对于某个以前保存的查询,提供单击过的结果的列表。





回页首


Searchlet

您可以使用 Searchlet Portlet 显示从其他内部或外部搜索服务处获得的搜索结果。通过这种方式,可以将主门户结果显示在来自其他搜索应用程序或者服务的搜索结果旁边。图 4 的右侧显示了 Searchlet Portlet。

您可以在 pst.searchlet.war 中找到这个 Portlet。


图 4. Searchlet 将来自 www.ibm.com 的结果显示在门户搜索结果旁边
图 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="&lt;!--BeginOutput--&gt;"
resultListEnd="&lt;!--EndOutput--&gt;"
resultItemStart="&lt;td width=&quot;392&quot;valign=&quot;top&quot; 
dir=&quot;ltr&quot;&gt;"
resultItemEnd="&lt;!--EndRecord--&gt;"
/>
</search>

这种格式与 mycroft 格式 (http://mycroft.mozdev.org/) 稍有不同:

  • <search action=”…”> 指定了搜索服务的 URL。
  • <input input=”…”> 为查询指定了 URL 参数。因此,实际的 Web 接口为 http://www.ibm.com/Search/?q=
  • resultListStart 是 HTML 页面中作为结果返回的搜索结果的开始标记。
  • resultListEnd 是搜索结果的结束标记。
  • resultItemStartresultItemEnd 分别用来标识每个搜索结果。

必须将 Portlet 参数 search_engine 的值设置为 com.ibm.lotus.search.pst.mycroftengine.impl.MycroftEngineImpl

可以配置附加的 Portlet 参数,包括:

  • 要显示在结果上方的图像的 URL (banner_uri)。
  • 要显示的结果的数目 (max_number_of_results)。其缺省值为 5。
  • 在没有任何结果的时候,该 Portlet 是否显示一条消息 (display_result_info_message)。其缺省值为 true。

连接 Searchlet

Searchlet Portlet 将使用 Results 消息,并使用其中的查询部分向外部搜索服务再次发出相同的查询。

重要:

  • 如果 Advanced Search Portlet 中存在已定义的查询部分,该 Portlet 对此不予考虑。
  • 这个 Portlet 不保存在此 Portlet 中对 Search History Portlet 的单击。





回页首


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
图 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 参数:

  • search_engine 的值设置为 com.ibm.lotus.search.pst.sponsoredlinkssearch.impl.SponsoredLinksSearch
  • search_displayer 的值设置为 com.ibm.lotus.search.pst.sponsoredlinkssearch.impl.SponsoredLinksDisplayer

这个 Portlet 与 Searchlet Portlet 相同,但使用了不同的参数。

您可以配置附加的 Portlet 参数,包括:

  • 要显示在结果上方的图像的 URL (banner_uri)。
  • 要显示的结果的数目 (max_number_of_results)。其缺省值为 5
  • 包含赞助商链接的集合 (collection_id)。
  • 在没有任何结果的时候,该 Portlet 是否显示一条消息 (display_result_info_message)。其缺省值为 true
  • 是否应该搜索页面内容,或者仅搜索关键字 (use_content)

连接 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
图 6. Facets Portlet

配置 Facets

在配置模式中,您可以通过定义下列参数对 Facets Portlet 进行配置:

  • Default Facet – 要显示的缺省方面列表,以逗号分隔。
  • Facets Text Field – 添加到方面的附加结果属性列表,以逗号分隔。例如,如果结果中包含称为 Media 的附加元数据字段,可以通过在这个配置列表中放入 Media ,将该字段添加到方面列表。
  • Results per page – 当单击某个方面时,在页面中显示的搜索结果的数目。

连接 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
图 7. Advanced Search Portlet

配置 Advanced Search

配置 Advanced Search Portlet 需要完成两个步骤。首先,创建一个存储高级搜索属性和可选值的文档库。然后,配置 Advanced Search Portlet。

要创建保存该 Portlet 的高级搜索属性的文档库,可以按下面的步骤进行:

  1. 转到 Portal Administration > Portal Content > Document Libraries
  2. 单击 New document library
  3. 输入库的名称并单击 Create

请记住写下库的 ID。稍后将使用这个库 ID 作为 ADVANCED_SEARCH_DOC_LIB_ID Portlet 参数的值。

下一步是更新该 Portlet 的配置参数:使用刚创建的文档库的库 ID 更新 ADVANCED_SEARCH_DOC_LIB_ID

在 Portlet 编辑模式中(请参见图 8 ),对于每一个范围,您可以定义显示哪些属性,以及用户是否可以输入属性作为自由文本、或者可以从值列表中选择属性。


图 8. Advanced Search Portlet 配置
图 8. Advanced Search Portlet 配置

连接 Advanced Search

Advanced Search Portlet 生成 Query Extend 消息,该消息包含需要添加到全文查询的高级查询术语。

这个 Portlet 使用下列消息:

  • Scope Change – 为给定的范围更新可用的筛选器。
  • Results – 为给定的查询(例如,通过 Search History Portlet 发出的查询)显示合适的筛选器。





回页首


Search History

您可以使用 Search History Portlet(请参见图 9 )来保存用户发出的搜索查询。此外,对于每一个查询,它将保存单击过的搜索结果的链接。要查看这些链接,可以单击“Clicked Results”栏中的 链接图标。单击一项查询将再次执行它。

您可以在 pst.searchhistory.war 中找到这个 Portlet。


图 9. Search History Portlet
图 9. Search History Portlet

配置 Search History

要使用 Search History Portlet,首先需要创建该 Portlet 用来保存查询的文档库:

  1. 选择 Portal Administration > Portal Content > Document Libraries
  2. 单击 New document library
  3. 输入库的名称并单击 Create

记录库 ID,您可以在运行时使用这个 ID 查找该库。

Search History Portlet 具有三个配置参数:

  • Queries Per Page – 每个页面显示的历史查询的数目。
  • Queries Per User – 为每个用户存储查询的最大数目。
  • Search History Document Library ID – 用于存储历史的文档库的 ID。

连接 Search History

Search History Portlet 生成下列消息:

  • Source – 传递保存的、并且可以再次发出的查询。
  • Clicked Results – 为要显示的给定查询传递保存的结果。

这个 Portlet 使用下列消息:

  • Results – 保存当前查询。
  • Link Click – 保存单击过的结果。





回页首


连接选项

表 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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章