我知道这是晚了几个月,但我刚刚在我的网站上解决了这个问题。这是很多尝试和错误,但我现在有Google Custom Search,使用API v2,在我的网站上工作。我们的Google自定义搜索元素被配置为执行“双页”显示,其中搜索框元素与搜索结果元素分开。
以前的管理员使用CSE APIv1和Google的Java API构建了我的网站的搜索功能。你知道你的网站使用谷歌与自定义搜索的Java API如果您的搜索框和/或搜索结果的代码包含以下靠近顶部:
<script src="//www.google.com/jsapi" type="text/javascript"></script> //Call to Google's Java API
<script type="text/javascript">// <![CDATA[
google.load('search', '1');
. . . some other Java functions . . .
// ]]></script>
<form>
<input to javascript function X()>
<input text from user>
<input submit button>
</form>
从上面可以看出,以前的管理员也有一个非常简单的HTML表单元素,用于从用户获取数据。然后将这些数据输入到旨在与GCSE搜索框元素进行交互的javascript函数中。
保留您的网站用于搜索框元素的javascript/HTML代码;失去搜索结果元素的JavaScript/HTML。如果您的网站使用Google的Java API,那么您实际上只需将Search Results元素转换为GCSE API v2。顺便说一下,我们正在Drupal 7块内的网站上完成所有这些工作。
我需要对搜索框元素进行的唯一更改是删除上述代码摘录中的第3行 - 'google.load('search','1');.
我删除了所有以前的搜索结果元/页(我们的resultsUrl)内置的代码,并用它代替:
<script src="sites/all/themes/eu/js/gsearch.js" type="text/javascript"></script>
<gcse:searchresults-only></gcse:searchresults-only>
本地存储“gsearch.js”文件包含了所有的细节我们的机构CSE控制台,包括我们的XXX:YYY ID。
使用Google的Java API将数据移植到GCS,而不是在搜索框元素中使用GCSE API(任何版本)的一大优势是,它允许搜索框在搜索结果页面上工作。使用只有 GCSE API,不允许将searchbox-only和searchresults-only元素添加到同一页面(Drupal节点)。
我认为博客文章告诉你该怎么做不是吗? https://customsearch.googleblog.com/2017/02/refocusing-and-looking-forward-on.html – DaImTo
@DaImTo没有列出直接转换路径。即“如果您正在进行此调用,这是API中每个条目的替代调用”。 – CoryG