在Domino应用程序中集成Google的Web API服务

ZDNet软件频道 时间:2008-07-24 作者: | BBS.ChinaUnix.net 我要评论()
本文关键词:Domino OpenAPI API google 服务
使用 Google 的 Web API 服务向 Domino 应用程序添加 Google Web 搜索功能。本文将展示如何使用一个简单的代理在应用程序中实现该搜索功能。请下载代码示例,开始 googling 吧!
使用 google 的 Web API 服务Domino 应用程序添加 google Web 搜索功能。本文将展示如何使用一个简单的代理在应用程序中实现该搜索功能。请下载代码示例,开始 googling 吧!

面对 google 当前和不断扩充的 30 多亿个 Web 页面的索引,它之所以会成为在 Internet 上执行工业强度的搜索的最佳工具之一就不难理解了。除了其 Web 页面的数量之外,搜索结果的质量之高也归功于其专有的搜索算法,该算法建立在相关性和流行性的基础上。最近的报告表明,google 每天以 88 种不同的语言响应 2 亿个搜索请求(平均每秒响应 2,300 个请求!)。而根据 SearchEngineWatch.com 的调查,google 处理了基于 Web 的所有查询中的百分之七十五。

显而易见,许多 Web 用户很熟悉 google 及其搜索特性。不那么为人所知的事实是,您可以使用 google 的 Web API 服务,将 google 的搜索功能整合进自己的 Domino 应用程序中(正如我们将在下一节说明的那样,您可以免费下载这个 API)。本文讲述如何向 Domino 应用程序添加 google 的搜索功能。我们将简要介绍 google API 以及它们是如何工作的。然后我们将研究一个示例应用程序,它将 google 搜索功能与 Domino 应用程序集成在一起。我们最后将提供一些如何扩充和定制这个简单例子的思路,从而结束本文的讨论。(本文中出现的所有例子都包含在一个 Domino 数据库中,您可以从 Sandbox下载该数据库。)

本文假设您是对编写 Domino 代理很熟悉的有经验的 Notes 应用程序开发人员。虽然高级 Java 经验不是理解我们的例子所必需的,但是强烈建议您了解一些 Java 的基础知识。

google API


要使用 googleAPI,请从 google 的 Web API 下载页面下载 google Web API 开发者工具箱(googleAPI.zip),并创建一个免费的 google 帐户以获得一个许可密钥。该密钥允许您每天最多执行 1,000 次搜索(您必须在发出搜索请求时在查询中包括此密钥。这是通过编程方式完成的,因此用户不必在每次执行查询时都键入该密钥)。该开发者工具箱附带了文档和例子,使您对 google 的自动化搜索如何工作有一个基本的了解。

在下载 googleAPI.zip 之后,请将它解压缩到 c:googleAPI 目录中。然后您就可以通过在 MS-DOS 命令提示符下键入以下命令来快速调用该 Web API: java -cp googleAPI.jar com.google.soap.search.googleAPIDemo <key> search Lotus Domino > result.html ,其中 < key > 是您的注册密钥,“Lotus Domino”是您想要搜索的项,result.html 是您想要将搜索结果写到其中的文件的名称。例如,下面的例子:

清单 1. 搜索结果
...
            Start Index = 1
            End Index = 10
            Estimated Total Results Number = 663000
            ...
            



显示了估计的 663,000 项查询结果中的前 10 项结果。

不过,如果您在 google Web 站点上试验相同的查询,可能会获得不同的结果。例如,在 google上针对“Lotus Domino”的相同查询将产生估计的 596,000 项结果。(google API 支持团队已证实,该 Web APIgoogle 站点本身使用相同的搜索引擎和索引页面,搜索结果方面的细微差别可能是由 google 所维护的许多数据中心造成的。)

快速浏览一下 googleAPI 目录中的 googleAPIDemo.java:

清单 2. 摘自 googleAPIDemo.java 的代码片断
...
            googleSearch s = new googleSearch();
            ...
            googleSearchResult r = s.doSearch();
            ...
            



您可以发现 doSearch() 方法在设置许可密钥和搜索字符串属性之后调用了 google 搜索。

在继续下一个例子之前,让我们快速查看一下您将使用的 google Web API 中的几个方法:

setKey()设置用户许可密钥。
setQueryString()设置查询字符串。
doSearch()调用 google 搜索。
toString()返回 google 搜索结果的格式化表示形式。
getResultElements()返回结果元素的数组。
getSnippet()返回一个代码片断,这个代码片断显示它出现的地方的 URL 环境中的查询。
getSummary()在当前文档包含于 ODP 目录中时返回 ODP 摘要。
getTitle()返回 HTML 格式的搜索结果标题。
getURL()返回搜索结果的绝对 URL。
此外,下面这组方法可以进一步完善您的搜索应用程序:

setStartResult()设置要返回的第一个结果的索引。例如,如果有 500 个结果,您可能希望从第 100 个结果处开始返回。
setMaxResults()设置每个查询要返回的最大结果数目。每个查询的最大值是 10。如果执行没有多少匹配项的查询,所获得的实际结果数目可能要比您所请求的少。
setFilter()启用或禁用“相关查询”过滤器。这个过滤器排除非常相似的结果。


Domino

OpenAPI

API

google

服务


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134