很早以前我们就在MediaWiki网站的页面中嵌入过Google Search API代码,见我2008年记录的《Google AJAX Search API 很好!很强大!》,这些嵌入的内容对网站浏览者来说还是很有用的,但到2010年ZF“整治互联网低俗之风”的时候,我们网站上嵌入的Google搜索结果也成了我们网站“涉黄”的原因,只好乖乖地去掉API调用代码,随后Google搜索也被迫退出中国大陆。
但在我们放在国外服务器上提供给老外浏览的站点上我们依然保留了Google Web Search API的内容,直到这个API被Google自身升级、淘汰,Google推出Custom Search API是2010年,当时说老的Search API将继续可以用3年,实际上延续了近6年,前一阵子我们收到的通知邮件中说在2016年4月29日正式停止服务。
这个Custom Search API我们以前也尝试过,但没有大量使用,4月份再次测试了一下,定制功能还是很强大的,免费版带有Google广告,不过可以与自己的AdSense账号绑定,给自己也带来收益。我们把代码稍微改了一下,将搜索框去掉,而让网页的标题作为默认的搜索词,网站展示的时候直接显示搜索结果,这与我们以前用Google AJAX Search API的方式一样,代码如下:
<script> (function() { var cx = 'partner-pub-1234567890:1234567890;//AdSense账号以及冒号后的自定义搜索编号 var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = 'https://cse.google.com/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); window.onload = function(){//这段是我们自己加入的,用于装载标题关键词并自动执行搜索 var key = '$title'; var element = google.search.cse.element.getElement('searchresults-only0'); element.execute(key); } </script> <gcse:searchresults-only></gcse:searchresults-only>
我们是把上面这段代码放到Drupal网站的显示模板中,就可以让相关的每个页面都自动显示搜索结果。
参考链接:Google Custom Search Engine (国内需要翻墙访问,梯子请自备,例子页面example page中的搜索内容也需要翻墙才能看到),在里面可以创建自己的自定义搜索引擎,并设置很多选项,包括外观、结果条数、是否站内搜索、搜索语言、国家以及提供统计和日志,十分强大。
另外,我也想尝试在国内的网站中加入这样的功能,但百度只提供站内搜索的API,没有对全网的查询,必应的bing search api只能免费5000次/日,暂时不用算了。
评论