4

将 Google Mini 用于需要从 Google Mini 以 JSON/JSONP 格式输出以进行前端查询的网站。Google Mini 确实发布了一个 XML 提要,中间进程可能会使用该提要转换为 JSON/JSONP。

Google Search Appliance / Mini 可以使用插件、修改 XSLT 模板或其他未知方法输出到 JSON/JSONP 吗?

发现的解决方案

  1. 似乎通过 code.google.com 挖掘发现 GSA/Mini 没有一种方法可以在不使用 XSLT 创建提要的情况下以 JSON/JSONP 格式输出。只需创建此 XSLT 来进行转换。
  2. 其他选项是使用可用技术(PHP?)创建服务器端脚本,以从 GSA/Mini 检索 XML,并根据前端 (AJAX) 的请求将提要转换为 JSONP。缺点是此调用中增加的开销。

2010 年 10 月 8 日更新

创建了一个生成 JSONP 响应的 Google Mini 前端。

4

2 回答 2

8

我在尝试获取 JSON 和 JSONP 时遇到了同样的问题。该解决方案通常适用于所有其他浏览器,但 IE。我无法将 mime-type 更改为 text/html 以外的其他内容,因为它在 GSA 中是全局的。创建了一个 XSLT 来解决像 IE 这样的浏览器的问题,由于安全功能(IE – SEC7112)不允许返回内容

https://github.com/kjonnala/gsa_template

希望有帮助。

于 2013-08-24T00:27:13.470 回答
2

我正在研究上面的方法#2。我们有 6.4 版的设备,它为建议服务提供 JSON(可能自 Riley 的问题以来是新的)。例如:

http://code.google.com/apis/searchappliance/documentation/64/xml_reference.html#RichOutputFormat

我遇到的是跨域限制阻止在非设备网站搜索表单上使用设备 JSON 服务,包括我们共享高级域的子域中的那些。

我现在正在测试一个简单的 Java servlet,它会发出建议调用。它接收传入请求,从设备获取响应,以 JSONP 格式输出并发送回调用页面。

我发现了一些与代理建议服务相关的参考资料:

http://groups.google.com/group/Google-Search-Appliance-Help/browse_thread/thread/72406a271a6d9917/

http://www.mcplusa.com/blog/2009/07/adding-google-search-appliance-suggest-search-to-your-existing-page/

http://sites.google.com/site/lightbends/gsa_qs_6_2

还有一些与 jQuery 的 JSONP 相关:

http://devlog.info/2010/03/10/cross-domain-ajax/

http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

servlet 中的 JSON 到 JSONP 很快,而且在我采用的方法中可能很脏:)

它还没有投入生产,所以我无法谈论我们在性能和其他挑战方面会发现什么。如果性能能够跟上,我喜欢从辅助服务器而不是直接从设备公开服务(如果需要,可以限制传入的请求等)。

2010 年 10 月 1 日更新

抱歉 - 我上面的帖子仅适用于建议服务,不适用于一般搜索结果。您仍然可以获取 XML 响应、处理并将其包装在 JSON/JSONP 中,但我怀疑这需要更长的时间。我在建议使用 jQuery 自动完成的搜索查询的上下文中使用 JSONP,因此快速响应(当他们键入时)很重要。

于 2010-09-29T17:52:38.817 回答