【问题标题】:Google Custom Search API Autocomplete?谷歌自定义搜索 API 自动完成?
【发布时间】:2012-01-04 03:58:00
【问题描述】:

我们正在使用 google 自定义搜索 API(付费的服务器端 API)来支持我们的搜索结果。

我想在搜索中添加一个自动完成功能 - 但是,有人知道是否支持此功能(通过服务器端 API,还是通过某种客户端 JSONP?)

我曾尝试使用 Google 自定义搜索的自动完成功能,但这似乎想要绘制搜索框并显示带有结果的 google 广告,这是我不想要的。

【问题讨论】:

    标签: autocomplete google-search-api


    【解决方案1】:

    让这个工作像这样 - 希望这对其他人有帮助:)

    $(function () {
      $('input.search')
        .focus(function () { this.select(); })
        .mouseup(function (e) { e.preventDefault(); })
        .autocomplete({
          position: {
            my: "left top",
            at: "left bottom",
            offset: "0, 5",
            collision: "none"
          },
          source: function (request, response) {
            $.ajax({
              url: "http://clients1.google.com/complete/search?q=" + request.term + "&hl=en&client=partner&source=gcsc&partnerid={GOOGLESEARCHID}&ds=cse&nocache=" + Math.random().toString(),
              dataType: "jsonp",
              success: function (data) {
                response($.map(data[1], function (item) {
                  return {
                    label: item[0],
                    value: item[0]
                  };
                }));
              }
            });
          },
          autoFill: true,
          minChars: 0,
          select: function (event, ui) {
            $(this).closest('input').val(ui.item.value);
            $(this).closest('form').trigger('submit');
          }
        });
    });
    

    【讨论】:

    • 感谢这段代码,我遇到了一个我不明白的问题。我看到网络请求正确发出,我看到来自它的 200 响应,以及预期的响应数据,但由于某种原因,成功功能从未被击中。有什么想法吗?
    • 太棒了,为我工作。保罗,如果你没有看到任何建议,可能是谷歌根本没有给你任何建议。我的自定义网站搜索提供的建议很少,我真的很吃惊。我最终在 CSE 控制面板中手动添加了大量内容。
    • 太好了,感谢它,它也对我有用。我唯一的问题是 .ui-helper-hidden-accessible 跨度现在出现在结束正文标记之前。这是可以关闭的东西,而不是使用css隐藏它吗?
    • 谁能确认上面答案中的源 URL 仍然有效,并且这种通过 json api 实现谷歌自定义搜索自动完成的方法确实仍然可行?有人愿意分享这个成功实施的链接吗?
    【解决方案2】:

    在撰写本文时(2013 年 6 月),有一种更简单的方法来获得自动完成功能,同时仍以 XML 格式获得结果:

    <gcse:searchbox-only enableAutoComplete="true" resultsUrl="#"></gcse:searchbox-only>

    • “诀窍”是您可以指定“resultsUrl”,这意味着您可以将实际搜索结果定向到您通过 XML API 生成的页面,而无需自己实现搜索框 UX。

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      相关资源
      最近更新 更多