Google自定义搜索排序日期范围标准不起作用

时间:2016-09-01 06:53:22

标签: javascript api search google-custom-search

在Google自定义搜索中,我们会在排序参数

中传递日期范围条件
http://www.example.com/search?cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&q=google&sort=date:r:20160304:20160505.
https://developers.google.com/custom-search/docs/structured_search#restrict_to_range

但我们没有按照日期范围标准获得预期结果。 调试代码后,即使我们将sort参数传递给我们的搜索页面网址,也不会将sort参数传递给自定义搜索网址。

Google自定义搜索网址

https://cse.google.com/cse?q=google&r=m&cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&fexp=20606&client=google-coop&hl=en&type=0&oe=UTF-8&ie=UTF-8&format=p4&ad=p4&nocache=1081472127237880&num=0&output=uds_ads_only&source=gcsc&v=3&allwcallad=1&adext=as1%2Csr1%2Cctc1&bsl=10&u_his=50&u_tz=330&dt=1472127237882&u_w=1366&u_h=768&biw=1349&bih=233&psw=1349&psh=233&frm=0&uio=uv3st16sd13sv13lhsl1sr1cc1-&jsv=14100&rurl=http%3A%2F%2Fwww.example.com%2Fsearch%3Fcx%xxxxxxxxxxxxxxxxxxxx_yyyyy%26q%3Dgoogle%26sort%3Ddate%253Ar%253A20160304%253A20160505

但是当我们尝试使用排序日期范围参数访问直接API时,我们会得到预期的结果。

https://www.googleapis.com/customsearch/v1?q=google&cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&sort=date%3Ar%3A20160701%3A20160724&key=<APIKEY>

我们正在使用Google自定义搜索V2实施。

谢谢, 阿努普

4 个答案:

答案 0 :(得分:2)

尝试转义作为查询参数传递的所有特殊字符。例如

escapeXml = "**false**"

这些编码是这样的。你可以通过两种方式逃避它

  1. 明确指定<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>为默认值为真。
  2. 如果您正在使用,请在JSP中添加url ${fn:escapeXml(myString)}然后通过电话逃脱 $(function () { chart = new Highcharts.Chart({ chart: { type: 'column', renderTo: 'container' }, title: { text: 'Monthly Average Rainfall' }, subtitle: { text: 'Source: WorldClimate.com' }, xAxis: { categories: [ 'Jan', 'Feb' ], crosshair: true }, yAxis: { min: 0, title: { text: 'Rainfall (mm)' } }, tooltip: { headerFormat: '<span style="font-size:10px">{point.key}</span><table>', pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' + '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>', footerFormat: '</table>', shared: true, useHTML: true }, plotOptions: { column: { pointPadding: 0.2, borderWidth: 0 } }, series: [{ name: 'Tokyo', data: [49.9, 71.5] }, { name: 'Berlin', data: [32.4, 33.2] }] }); chart.addSeries( { name: 'New York', data: [83.6, 78.8] }) chart.series[0].index = 2; chart.series[1].index = 3; chart.series[2].index = 1; chart.redraw(); });

答案 1 :(得分:1)

您的网址参数编码似乎有问题。它可能是双重编码的。

答案 2 :(得分:1)

我认为在代码中你为查询参数执行任何转义字符尝试删除该检查

答案 3 :(得分:0)

确保使用的格式正确。

https://www.googleapis.com/customsearch/v1?key=INSERT_YOUR_API_KEY&cx=017576662512468239146:omuauf_lfve&q=searchterm&sort=document-weight

谢谢!