免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2031 | 回复: 0
打印 上一主题 下一主题

在Domino应用程序中集成Google的Web API服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-23 10:56 |只看该作者 |倒序浏览
使用 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


要使用 Google 的 API,请从 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 API 和 Google 站点本身使用相同的搜索引擎和索引页面,搜索结果方面的细微差别可能是由 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()启用或禁用“相关查询”过滤器。这个过滤器排除非常相似的结果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP